diff options
Diffstat (limited to 'aarch64_small')
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 |
