Require Import Coqlib.
Require Import Maps.
Require Import Constants.
Require Import GenSem.
Require Import liblayers.compat.CompatLayers.
Open Local Scope Z_scope.
Section DataType.
Record Memblock :=
mkMemblock {
mb_base: Z;
mb_size: Z;
mb_flag: Z;
mb_index: Z
}.
Record CoreData :=
mkCoreData {
next_vmid: Z;
next_remap_ptr: Z
}.
Record S2Page :=
mkS2Page {
s2_owner: Z;
s2_count: Z;
s2_gfn: Z
}.
(* cpuid -> gfn @ (pfn, level) *)
Definition TLB := ZMap.t (ZMap.t (Z * Z)).
Record NPT :=
mkNPT {
(* low level *)
pt_vttbr_pool: ZMap.t Z;
pt_pgd_pool: ZMap.t Z;
pt_pud_pool: ZMap.t Z;
pt_pmd_pool: ZMap.t Z;
pt_pgd_next: Z;
pt_pud_next: Z;
pt_pmd_next: Z;
pt_pgd_par: ZMap.t Z;
pt_pud_par: ZMap.t Z;
pt_pmd_par: ZMap.t Z;
(* high level *)
tlb: TLB;
pt: ZMap.t (Z * Z * Z);
pgd_t : ZMap.t bool;
pud_t : ZMap.t (ZMap.t bool);
pmd_t : ZMap.t (ZMap.t (ZMap.t bool))
}.
Record BootInfo :=
mkBootInfo {
vm_next_load_info: Z;
(* vmid -> load_info_id -> load_info *)
vm_load_addr: ZMap.t Z;
vm_load_size: ZMap.t Z;
vm_remap_addr: ZMap.t Z;
vm_inc_exe: Z;
vm_mapped_pages: ZMap.t Z
}.
Record StateInfo :=
mkStateInfo {
vm_kvm: Z;
vm_vcpu: ZMap.t Z;
vm_state: Z;
vm_vcpu_state: ZMap.t Z;
vm_power: Z
}.
Record VMInfo :=
mkVMInfo {
VS: StateInfo;
VB: BootInfo
}.
Record SMMUConf :=
mkSMMUConfig {
smmu_num: Z;
(* per device config *)
smmu_phys_base: ZMap.t Z;
smmu_size: ZMap.t Z;
smmu_pgshift: ZMap.t Z;
smmu_features: ZMap.t Z;
smmu_options: ZMap.t Z;
smmu_dev_context_banks: ZMap.t Z;
num_s2_context_banks: ZMap.t Z;
smmu_dev_mapping_groups: ZMap.t Z;
smmu_va_size: ZMap.t Z;
smmu_ipa_size: ZMap.t Z;
smmu_pa_size: ZMap.t Z;
smmu_dev_global_irqs: ZMap.t Z;
smmu_dev_context_irqs: ZMap.t Z;
smmu_exists: ZMap.t Z;
smmu_hyp_base: ZMap.t Z
}.
Record SPT :=
mkSPT {
(* global smmu_pt pool *)
spt_vttbr_pool: ZMap.t Z;
spt_pgd_pool: ZMap.t Z;
spt_pmd_pool: ZMap.t Z;
spt_pgd_next: Z;
spt_pmd_next: Z;
spt_pgd_par: ZMap.t Z;
spt_pmd_par: ZMap.t Z;
(* dev -> cfg -> spt high *)
spt_pt: ZMap.t (ZMap.t (Z * Z));
spt_pgd_t : ZMap.t (ZMap.t bool);
spt_pmd_t : ZMap.t (ZMap.t (ZMap.t bool))
}.
Record CtxtRegs :=
mkCtxtRegs {
x0: Z;
x1: Z;
x2: Z;
x3: Z;
x4: Z;
x5: Z;
x6: Z;
x7: Z;
x8: Z;
x9: Z;
x10: Z;
x11: Z;
x12: Z;
x13: Z;
x14: Z;
x15: Z;
x16: Z;
x17: Z;
x18: Z;
x19: Z;
x20: Z;
x21: Z;
x22: Z;
x23: Z;
x24: Z;
x25: Z;
x26: Z;
x27: Z;
x28: Z;
x29: Z;
x30: Z;
fp_q0: Z;
fp_q1: Z;
fp_q2: Z;
fp_q3: Z;
fp_q4: Z;
fp_q5: Z;
fp_q6: Z;
fp_q7: Z;
fp_q8: Z;
fp_q9: Z;
fp_q10: Z;
fp_q11: Z;
fp_q12: Z;
fp_q13: Z;
fp_q14: Z;
fp_q15: Z;
fp_q16: Z;
fp_q17: Z;
fp_q18: Z;
fp_q19: Z;
fp_q20: Z;
fp_q21: Z;
fp_q22: Z;
fp_q23: Z;
fp_q24: Z;
fp_q25: Z;
fp_q26: Z;
fp_q27: Z;
fp_q28: Z;
fp_q29: Z;
fp_q30: Z;
fp_q31: Z;
fp_fpsr: Z;
fp_fpcr: Z;
csselr_el1: Z;
sctlr_el1: Z;
cpacr_el1: Z;
ttbr0_el1: Z;
ttbr1_el1: Z;
tcr_el1: Z;
afsr0_el1: Z;
afsr1_el1: Z;
far_el1: Z;
mair_el1: Z;
vbar_el1: Z;
contextidr_el1: Z;
amair_el1: Z;
cntkctl_el1: Z;
par_el1: Z;
tpidr_el1: Z;
spsr_el1: Z;
mdscr_el1: Z;
sp_el0: Z;
tpidr_el0: Z;
tpidrro_el0: Z;
spsr_el2: Z;
vmpidr_el2: Z;
mpidr_el1: Z;
actlr_el1: Z;
sp_el1: Z;
elr_el1: Z;
elr_el2: Z;
vttbr_el2: Z;
hcr_el2: Z;
tpidr_el2: Z;
esr_el2: Z;
ec: Z;
far_el2: Z;
hpfar_el2: Z
}.
Record TrapRegs :=
mkTrapRegs {
pmuselr_el0: Z;
pmuserenr_el0: Z;
mdcr_el2: Z;
cptr_el2: Z;
cnthctl_el2: Z
}.
Record CtxtStates :=
mkCtxtStates {
pc: Z;
pstate: Z;
dirty: Z;
flags: Z;
esr_el1: Z;
spsr_0: Z
}.
Record Ctxt :=
mkCtxt {
ctxt_regs: CtxtRegs;
trap_regs: TrapRegs;
ctxt_states: CtxtStates
}.
End DataType.
Section Concurrency.
Definition DataOracle := Z -> Z -> Z.
Inductive TicketOracleEvent :=
| WAIT_LOCK (n: nat)
| REL_LOCK.
Inductive SharedMemEvent :=
| OPULL (id: Z)
| OCORE_DATA (core_data: CoreData)
| OS2_PAGE (s2page: ZMap.t S2Page)
| ONPT (npt: NPT)
| OVMINFO (info: VMInfo)
| OSPT (smmu: SPT)
| OSMMU (smmu_vmid: ZMap.t Z)
| OCACHE (cache: ZMap.t (option (Z * Z)))
| OFLATMEM (flatmem: ZMap.t (Z * Z)).
Inductive AtomicEvent :=
| OPT_GET (vmid: Z)
| OMAP_HOST (addr: Z)
| OCLEAR_VM (vmid: Z) (pfn: Z)
| OASSIGN_VM (vmid: Z) (gfn: Z) (pfn: Z) (dorc: DataOracle) (logn: Z)
| OMAP_VM (vmid: Z) (addr: Z) (pte: Z) (level: Z)
| OMAP_IO (vmid: Z) (gpa: Z) (pa: Z)
| OGRANT (vmid: Z) (pfn: Z)
| OREVOKE (vmid: Z) (pfn: Z) (dorc: DataOracle) (logn: Z)
| OVM_GET (vmid: Z)
| OVM_ACTIVE (vmid: Z) (vcpuid: Z)
| OVM_INACTIVE (vmid: Z) (vcpuid: Z)
| OVM_POWEROFF (vmid: Z)
| OREG_VCPU (vmid: Z) (vcpuid: Z)
| OGEN_VMID
| OREG_KVM (vmid: Z)
| OBOOT_INFO (vmid: Z) (load_addr: Z) (size: Z)
| OREMAP_IMAGE (vmid: Z) (pfn: Z) (load_idx: Z)
| OVERIFY (vmid: Z)
| OSMMU_GET
| OASSIGN_SMMU (cbndx: Z) (index: Z) (gfn: Z) (pfn: Z)
| OSMMU_FREE (cbndx: Z) (index: Z)
| OSMMU_ALLOC (cbndx: Z) (vmid: Z) (index: Z) (num: Z)
| OSMMU_MAP (cbndx: Z) (index: Z) (iova: Z) (pte: Z)
| OSMMU_CLEAR (iova: Z) (cbndx: Z) (index: Z)
| OLOAD_ENC_VCPU (vmid: Z) (vcpuid: Z) (cregs: CtxtRegs) (cstates: CtxtStates) (dorc: Z -> Z) (logn: Z)
| OSAVE_ENC_BUF (vmid: Z) (inbuf: Z) (outbuf: Z) (dorc: Z -> Z) (logn: Z)
| OLOAD_ENC_BUF (vmid: Z) (inbuf: Z) (dorc: Z -> Z) (logn: Z).
Inductive MultiOracleEventUnit :=
| TTICKET (e: TicketOracleEvent)
| TSHARED (e: SharedMemEvent).
Inductive MultiOracleEvent :=
| TEVENT (cpuid: Z) (e: MultiOracleEventUnit).
Definition MultiLog := list MultiOracleEvent.
Definition MultiLogPool := ZMap.t MultiLog.
Definition MultiOracle := Z -> MultiLog -> MultiLog.
Definition MultiOraclePool := ZMap.t MultiOracle.
Inductive SingleOracleEvent :=
| SEVENT (cpuid: Z) (e: AtomicEvent).
Definition SingleLog := list SingleOracleEvent.
Definition SingleOracle := Z -> SingleLog -> SingleLog.
Inductive LockStatus :=
| LockFalse
| LockOwn (b: bool).
Definition Lock := ZMap.t LockStatus.
End Concurrency.
Section AbsData.
Record Shared :=
mkShared {
flatmem: ZMap.t (Z * Z);
cache: ZMap.t (option (Z * Z));
(* npt *)
npts: ZMap.t NPT;
(* s2page *)
s2page: ZMap.t S2Page;
(* core data *)
core_data: CoreData;
(* vm *)
vminfos: ZMap.t VMInfo;
(* smmu *)
spts: SPT;
smmu_vmid: ZMap.t Z;
(* high lock *)
hlock: ZMap.t bool
}.
Record RData :=
mkRData {
(* machine states *)
halt: bool;
icore: bool;
ihost: bool;
tstate: Z;
curid: Z;
cur_vmid: Z;
cur_vcpuid: Z;
(* register *)
regs: Ctxt;
(* lock *)
lock: Lock;
(* mem region *)
region_cnt: Z;
regions: ZMap.t Memblock;
(* ctxt *)
shadow_ctxts: ZMap.t Ctxt;
(* smmu *)
smmu_conf: SMMUConf;
(* concurrency *)
log: MultiLogPool;
oracle: MultiOraclePool;
slog: SingleLog;
soracle: SingleOracle;
(* data_oracle *)
doracle: DataOracle;
core_doracle: DataOracle;
data_log: ZMap.t Z;
core_data_log: ZMap.t Z;
(* shared obj *)
shared: Shared
}.
Parameter empty_adt: RData.
End AbsData.
(* Helpful Notations *)
Notation "reg @ ctxt" := (ZMap.get reg ctxt) (at level 1).
Notation "ctxt # reg == val" := (ZMap.set reg val ctxt) (at level 1).
Definition mset{T} (ctxt: ZMap.t T) idx val :=
ZMap.set idx val ctxt.
Definition mset2{T} (ctxt: (ZMap.t (ZMap.t T))) idx1 idx2 val :=
ZMap.set idx1 (ZMap.set idx2 val (ZMap.get idx1 ctxt)) ctxt.
Definition mset3{T} (ctxt: (ZMap.t (ZMap.t (ZMap.t T)))) idx1 idx2 idx3 val :=
(ZMap.set idx1 (ZMap.set idx2 (ZMap.set idx3 val (ZMap.get idx2 (ZMap.get idx1 ctxt))) (ZMap.get idx1 ctxt)) ctxt).
Definition bind {A T : Type} (a : option A) (f : A -> option T) : option T :=
match a with
| Some x => f x
| None => None
end.
Definition bind64 {T : Type} (a : option Z64) (f : Z -> option T) : option T :=
match a with
| Some (VZ64 x) => f x
| None => None
end.
Definition bind' {A T: Type} (a : option (RData * A)) (f : A -> RData -> option T) : option T :=
match a with
| Some (adt', x) => f x adt'
| None => None
end.
Definition bind64' {T : Type} (a : option (RData*Z64)) (f : Z -> RData -> option T) : option T :=
match a with
| Some (adt', VZ64 x) => f x adt'
| None => None
end.
Notation "'when' X == A ; B" := (bind A (fun X => B)) (at level 200, X ident, A at level 100, B at level 200).
Notation "'when' X ',' D == A ; B" := (bind' A (fun X D => B)) (at level 200, X ident, D ident, A at level 100, B at level 200).
Notation "'when'' X == A ; B" := (bind64 A (fun X => B)) (at level 200, X ident, A at level 100, B at level 200).
Notation "'when'' X ',' D == A ; B" := (bind64' A (fun X D => B)) (at level 200, X ident, D ident, A at level 100, B at level 200).
Definition Assertion {T : Type} (a : bool) (f : option T) : option T :=
match a with
| true => f
| false => None
end.
Notation "'rely' B ; F" := (Assertion B F) (at level 200, B at level 100, F at level 200).
Hint Unfold bind bind64 bind' bind64' Assertion.
Definition update_next_vmid (a: CoreData) b :=
mkCoreData b (next_remap_ptr a).
Notation "a {next_vmid : b }" := (update_next_vmid a b) (at level 1).
Definition update_next_remap_ptr (a: CoreData) b :=
mkCoreData (next_vmid a) b.
Notation "a {next_remap_ptr : b }" := (update_next_remap_ptr a b) (at level 1).
Definition update_s2_owner (a: S2Page) b :=
mkS2Page b (s2_count a) (s2_gfn a).
Notation "a {s2_owner : b }" := (update_s2_owner a b) (at level 1).
Definition update_s2_count (a: S2Page) b :=
mkS2Page (s2_owner a) b (s2_gfn a).
Notation "a {s2_count : b }" := (update_s2_count a b) (at level 1).
Definition update_s2_gfn (a: S2Page) b :=
mkS2Page (s2_owner a) (s2_count a) b.
Notation "a {s2_gfn : b }" := (update_s2_gfn a b) (at level 1).
Definition update_pt_vttbr_pool (a: NPT) b :=
mkNPT b (pt_pgd_pool a) (pt_pud_pool a) (pt_pmd_pool a) (pt_pgd_next a) (pt_pud_next a) (pt_pmd_next a)
(pt_pgd_par a) (pt_pud_par a) (pt_pmd_par a) (pt a) (pgd_t a) (pud_t a) (pmd_t a).
Notation "a {pt_vttbr_pool : b }" := (update_pt_vttbr_pool a b) (at level 1).
Definition update_pt_pgd_pool (a: NPT) b :=
mkNPT (pt_vttbr_pool a) b (pt_pud_pool a) (pt_pmd_pool a) (pt_pgd_next a) (pt_pud_next a) (pt_pmd_next a)
(pt_pgd_par a) (pt_pud_par a) (pt_pmd_par a) (pt a) (pgd_t a) (pud_t a) (pmd_t a).
Notation "a {pt_pgd_pool : b }" := (update_pt_pgd_pool a b) (at level 1).
Definition update_pt_pud_pool (a: NPT) b :=
mkNPT (pt_vttbr_pool a) (pt_pgd_pool a) b (pt_pmd_pool a) (pt_pgd_next a) (pt_pud_next a) (pt_pmd_next a)
(pt_pgd_par a) (pt_pud_par a) (pt_pmd_par a) (pt a) (pgd_t a) (pud_t a) (pmd_t a).
Notation "a {pt_pud_pool : b }" := (update_pt_pud_pool a b) (at level 1).
Definition update_pt_pmd_pool (a: NPT) b :=
mkNPT (pt_vttbr_pool a) (pt_pgd_pool a) (pt_pud_pool a) b (pt_pgd_next a) (pt_pud_next a) (pt_pmd_next a)
(pt_pgd_par a) (pt_pud_par a) (pt_pmd_par a) (pt a) (pgd_t a) (pud_t a) (pmd_t a).
Notation "a {pt_pmd_pool : b }" := (update_pt_pmd_pool a b) (at level 1).
Definition update_pt_pgd_next (a: NPT) b :=
mkNPT (pt_vttbr_pool a) (pt_pgd_pool a) (pt_pud_pool a) (pt_pmd_pool a) b (pt_pud_next a) (pt_pmd_next a)
(pt_pgd_par a) (pt_pud_par a) (pt_pmd_par a) (pt a) (pgd_t a) (pud_t a) (pmd_t a).
Notation "a {pt_pgd_next : b }" := (update_pt_pgd_next a b) (at level 1).
Definition update_pt_pud_next (a: NPT) b :=
mkNPT (pt_vttbr_pool a) (pt_pgd_pool a) (pt_pud_pool a) (pt_pmd_pool a) (pt_pgd_next a) b (pt_pmd_next a)
(pt_pgd_par a) (pt_pud_par a) (pt_pmd_par a) (pt a) (pgd_t a) (pud_t a) (pmd_t a).
Notation "a {pt_pud_next : b }" := (update_pt_pud_next a b) (at level 1).
Definition update_pt_pmd_next (a: NPT) b :=
mkNPT (pt_vttbr_pool a) (pt_pgd_pool a) (pt_pud_pool a) (pt_pmd_pool a) (pt_pgd_next a) (pt_pud_next a) b
(pt_pgd_par a) (pt_pud_par a) (pt_pmd_par a) (pt a) (pgd_t a) (pud_t a) (pmd_t a).
Notation "a {pt_pmd_next : b }" := (update_pt_pmd_next a b) (at level 1).
Definition update_pt_pgd_par (a: NPT) b :=
mkNPT (pt_vttbr_pool a) (pt_pgd_pool a) (pt_pud_pool a) (pt_pmd_pool a) (pt_pgd_next a) (pt_pud_next a) (pt_pmd_next a)
b (pt_pud_par a) (pt_pmd_par a) (pt a) (pgd_t a) (pud_t a) (pmd_t a).
Notation "a {pt_pgd_par : b }" := (update_pt_pgd_par a b) (at level 1).
Definition update_pt_pud_par (a: NPT) b :=
mkNPT (pt_vttbr_pool a) (pt_pgd_pool a) (pt_pud_pool a) (pt_pmd_pool a) (pt_pgd_next a) (pt_pud_next a) (pt_pmd_next a)
(pt_pgd_par a) b (pt_pmd_par a) (pt a) (pgd_t a) (pud_t a) (pmd_t a).
Notation "a {pt_pud_par : b }" := (update_pt_pud_par a b) (at level 1).
Definition update_pt_pmd_par (a: NPT) b :=
mkNPT (pt_vttbr_pool a) (pt_pgd_pool a) (pt_pud_pool a) (pt_pmd_pool a) (pt_pgd_next a) (pt_pud_next a) (pt_pmd_next a)
(pt_pgd_par a) (pt_pud_par a) b (pt a) (pgd_t a) (pud_t a) (pmd_t a).
Notation "a {pt_pmd_par : b }" := (update_pt_pmd_par a b) (at level 1).
Definition update_pt (a: NPT) b :=
mkNPT (pt_vttbr_pool a) (pt_pgd_pool a) (pt_pud_pool a) (pt_pmd_pool a) (pt_pgd_next a) (pt_pud_next a) (pt_pmd_next a)
(pt_pgd_par a) (pt_pud_par a) (pt_pmd_par a) b (pgd_t a) (pud_t a) (pmd_t a).
Notation "a {pt : b }" := (update_pt a b) (at level 1).
Definition update_pgd_t (a: NPT) b :=
mkNPT (pt_vttbr_pool a) (pt_pgd_pool a) (pt_pud_pool a) (pt_pmd_pool a) (pt_pgd_next a) (pt_pud_next a) (pt_pmd_next a)
(pt_pgd_par a) (pt_pud_par a) (pt_pmd_par a) (pt a) b (pud_t a) (pmd_t a).
Notation "a {pgd_t : b }" := (update_pgd_t a b) (at level 1).
Definition update_pud_t (a: NPT) b :=
mkNPT (pt_vttbr_pool a) (pt_pgd_pool a) (pt_pud_pool a) (pt_pmd_pool a) (pt_pgd_next a) (pt_pud_next a) (pt_pmd_next a)
(pt_pgd_par a) (pt_pud_par a) (pt_pmd_par a) (pt a) (pgd_t a) b (pmd_t a).
Notation "a {pud_t : b }" := (update_pud_t a b) (at level 1).
Definition update_pmd_t (a: NPT) b :=
mkNPT (pt_vttbr_pool a) (pt_pgd_pool a) (pt_pud_pool a) (pt_pmd_pool a) (pt_pgd_next a) (pt_pud_next a) (pt_pmd_next a)
(pt_pgd_par a) (pt_pud_par a) (pt_pmd_par a) (pt a) (pgd_t a) (pud_t a) b.
Notation "a {pmd_t : b }" := (update_pmd_t a b) (at level 1).
Definition update_VS (a: VMInfo) b :=
mkVMInfo b (VB a).
Notation "a {VS : b }" := (update_VS a b) (at level 1).
Definition update_VB (a: VMInfo) b :=
mkVMInfo (VS a) b.
Notation "a {VB : b }" := (update_VB a b) (at level 1).
Definition update_vm_next_load_info (a: VMInfo) b :=
mkVMInfo (VS a)
(mkBootInfo b (vm_load_addr (VB a)) (vm_load_size (VB a)) (vm_remap_addr (VB a)) (vm_inc_exe (VB a)) (vm_mapped_pages (VB a))).
Notation "a {vm_next_load_info : b }" := (update_vm_next_load_info a b) (at level 1).
Definition update_vm_load_addr (a: VMInfo) b :=
mkVMInfo (VS a)
(mkBootInfo (vm_next_load_info (VB a)) b (vm_load_size (VB a)) (vm_remap_addr (VB a)) (vm_inc_exe (VB a)) (vm_mapped_pages (VB a))).
Notation "a {vm_load_addr : b }" := (update_vm_load_addr a b) (at level 1).
Definition update_vm_load_size (a: VMInfo) b :=
mkVMInfo (VS a)
(mkBootInfo (vm_next_load_info (VB a)) (vm_load_addr (VB a)) b (vm_remap_addr (VB a)) (vm_inc_exe (VB a)) (vm_mapped_pages (VB a))).
Notation "a {vm_load_size : b }" := (update_vm_load_size a b) (at level 1).
Definition update_vm_remap_addr (a: VMInfo) b :=
mkVMInfo (VS a)
(mkBootInfo (vm_next_load_info (VB a)) (vm_load_addr (VB a)) (vm_load_size (VB a)) b (vm_inc_exe (VB a)) (vm_mapped_pages (VB a))).
Notation "a {vm_remap_addr : b }" := (update_vm_remap_addr a b) (at level 1).
Definition update_vm_inc_exe (a: VMInfo) b :=
mkVMInfo (VS a)
(mkBootInfo (vm_next_load_info (VB a)) (vm_load_addr (VB a)) (vm_load_size (VB a)) (vm_remap_addr (VB a)) b (vm_mapped_pages (VB a))).
Notation "a {vm_inc_exe : b }" := (update_vm_inc_exe a b) (at level 1).
Definition update_vm_mapped_pages (a: VMInfo) b :=
mkVMInfo (VS a)
(mkBootInfo (vm_next_load_info (VB a)) (vm_load_addr (VB a)) (vm_load_size (VB a)) (vm_remap_addr (VB a)) (vm_inc_exe (VB a)) b).
Notation "a {vm_mapped_pages : b }" := (update_vm_mapped_pages a b) (at level 1).
Definition update_vm_kvm (a: VMInfo) b :=
mkVMInfo
(mkStateInfo b (vm_vcpu (VS a)) (vm_state (VS a)) (vm_vcpu_state (VS a)) (vm_power (VS a)))
(VB a).
Notation "a {vm_kvm : b }" := (update_vm_kvm a b) (at level 1).
Definition update_vm_vcpu (a: VMInfo) b :=
mkVMInfo
(mkStateInfo (vm_kvm (VS a)) b (vm_state (VS a)) (vm_vcpu_state (VS a)) (vm_power (VS a)))
(VB a).
Notation "a {vm_vcpu : b }" := (update_vm_vcpu a b) (at level 1).
Definition update_vm_state (a: VMInfo) b :=
mkVMInfo
(mkStateInfo (vm_kvm (VS a)) (vm_vcpu (VS a)) b (vm_vcpu_state (VS a)) (vm_power (VS a)))
(VB a).
Notation "a {vm_state : b }" := (update_vm_state a b) (at level 1).
Definition update_vm_vcpu_state (a: VMInfo) b :=
mkVMInfo
(mkStateInfo (vm_kvm (VS a)) (vm_vcpu (VS a)) (vm_state (VS a)) b (vm_power (VS a)))
(VB a).
Notation "a {vm_vcpu_state : b }" := (update_vm_vcpu_state a b) (at level 1).
Definition update_vm_power (a: VMInfo) b :=
mkVMInfo
(mkStateInfo (vm_kvm (VS a)) (vm_vcpu (VS a)) (vm_state (VS a)) (vm_vcpu_state (VS a)) b)
(VB a).
Notation "a {vm_power : b }" := (update_vm_power a b) (at level 1).
Definition update_spt_vttbr_pool (a: SPT) b :=
mkSPT b (spt_pgd_pool a) (spt_pmd_pool a) (spt_pgd_next a) (spt_pmd_next a) (spt_pgd_par a) (spt_pmd_par a)
(spt_pt a) (spt_pgd_t a) (spt_pmd_t a).
Notation "a {spt_vttbr_pool : b }" := (update_spt_vttbr_pool a b) (at level 1).
Definition update_spt_pgd_pool (a: SPT) b :=
mkSPT (spt_vttbr_pool a) b (spt_pmd_pool a) (spt_pgd_next a) (spt_pmd_next a) (spt_pgd_par a) (spt_pmd_par a)
(spt_pt a) (spt_pgd_t a) (spt_pmd_t a).
Notation "a {spt_pgd_pool : b }" := (update_spt_pgd_pool a b) (at level 1).
Definition update_spt_pmd_pool (a: SPT) b :=
mkSPT (spt_vttbr_pool a) (spt_pgd_pool a) b (spt_pgd_next a) (spt_pmd_next a) (spt_pgd_par a) (spt_pmd_par a)
(spt_pt a) (spt_pgd_t a) (spt_pmd_t a).
Notation "a {spt_pmd_pool : b }" := (update_spt_pmd_pool a b) (at level 1).
Definition update_spt_pgd_next (a: SPT) b :=
mkSPT (spt_vttbr_pool a) (spt_pgd_pool a) (spt_pmd_pool a) b (spt_pmd_next a) (spt_pgd_par a) (spt_pmd_par a)
(spt_pt a) (spt_pgd_t a) (spt_pmd_t a).
Notation "a {spt_pgd_next : b }" := (update_spt_pgd_next a b) (at level 1).
Definition update_spt_pmd_next (a: SPT) b :=
mkSPT (spt_vttbr_pool a) (spt_pgd_pool a) (spt_pmd_pool a) (spt_pgd_next a) b (spt_pgd_par a) (spt_pmd_par a)
(spt_pt a) (spt_pgd_t a) (spt_pmd_t a).
Notation "a {spt_pmd_next : b }" := (update_spt_pmd_next a b) (at level 1).
Definition update_spt_pgd_par (a: SPT) b :=
mkSPT (spt_vttbr_pool a) (spt_pgd_pool a) (spt_pmd_pool a) (spt_pgd_next a) (spt_pmd_next a) b (spt_pmd_par a)
(spt_pt a) (spt_pgd_t a) (spt_pmd_t a).
Notation "a {spt_pgd_par : b }" := (update_spt_pgd_par a b) (at level 1).
Definition update_spt_pmd_par (a: SPT) b :=
mkSPT (spt_vttbr_pool a) (spt_pgd_pool a) (spt_pmd_pool a) (spt_pgd_next a) (spt_pmd_next a) (spt_pgd_par a) b
(spt_pt a) (spt_pgd_t a) (spt_pmd_t a).
Notation "a {spt_pmd_par : b }" := (update_spt_pmd_par a b) (at level 1).
Definition update_spt_pt (a: SPT) b :=
mkSPT (spt_vttbr_pool a) (spt_pgd_pool a) (spt_pmd_pool a) (spt_pgd_next a) (spt_pmd_next a) (spt_pgd_par a) (spt_pmd_par a)
b (spt_pgd_t a) (spt_pmd_t a).
Notation "a {spt_pt : b }" := (update_spt_pt a b) (at level 1).
Definition update_spt_pgd_t (a: SPT) b :=
mkSPT (spt_vttbr_pool a) (spt_pgd_pool a) (spt_pmd_pool a) (spt_pgd_next a) (spt_pmd_next a) (spt_pgd_par a) (spt_pmd_par a)
(spt_pt a) b (spt_pmd_t a).
Notation "a {spt_pgd_t : b }" := (update_spt_pgd_t a b) (at level 1).
Definition update_spt_pmd_t (a: SPT) b :=
mkSPT (spt_vttbr_pool a) (spt_pgd_pool a) (spt_pmd_pool a) (spt_pgd_next a) (spt_pmd_next a) (spt_pgd_par a) (spt_pmd_par a)
(spt_pt a) (spt_pgd_t a) b.
Notation "a {spt_pmd_t : b }" := (update_spt_pmd_t a b) (at level 1).
Definition update_flatmem (a: Shared) b :=
mkShared b (npts a) (s2page a) (core_data a) (vminfos a) (spts a) (smmu_vmid a) (hlock a).
Notation "a {flatmem : b }" := (update_flatmem a b) (at level 1).
Definition update_npts (a: Shared) b :=
mkShared (flatmem a) b (s2page a) (core_data a) (vminfos a) (spts a) (smmu_vmid a) (hlock a).
Notation "a {npts : b }" := (update_npts a b) (at level 1).
Definition update_s2page (a: Shared) b :=
mkShared (flatmem a) (npts a) b (core_data a) (vminfos a) (spts a) (smmu_vmid a) (hlock a).
Notation "a {s2page : b }" := (update_s2page a b) (at level 1).
Definition update_core_data (a: Shared) b :=
mkShared (flatmem a) (npts a) (s2page a) b (vminfos a) (spts a) (smmu_vmid a) (hlock a).
Notation "a {core_data : b }" := (update_core_data a b) (at level 1).
Definition update_vminfos (a: Shared) b :=
mkShared (flatmem a) (npts a) (s2page a) (core_data a) b (spts a) (smmu_vmid a) (hlock a).
Notation "a {vminfos : b }" := (update_vminfos a b) (at level 1).
Definition update_spts (a: Shared) b :=
mkShared (flatmem a) (npts a) (s2page a) (core_data a) (vminfos a) b (smmu_vmid a) (hlock a).
Notation "a {spts : b }" := (update_spts a b) (at level 1).
Definition update_smmu_vmid (a: Shared) b :=
mkShared (flatmem a) (npts a) (s2page a) (core_data a) (vminfos a) (spts a) b (hlock a).
Notation "a {smmu_vmid : b }" := (update_smmu_vmid a b) (at level 1).
Definition update_hlock (a: Shared) b :=
mkShared (flatmem a) (npts a) (s2page a) (core_data a) (vminfos a) (spts a) (smmu_vmid a) b.
Notation "a {hlock : b }" := (update_hlock a b) (at level 1).
Definition update_halt (a: RData) b :=
mkRData b (icore a) (ihost a) (tstate a) (curid a) (cur_vmid a) (cur_vcpuid a) (regs a)
(lock a) (region_cnt a) (regions a) (shadow_ctxts a) (smmu_conf a) (log a) (oracle a) (slog a)
(soracle a) (doracle a) (core_doracle a) (data_log a) (core_data_log a) (shared a).
Notation "a {halt : b }" := (update_halt a b) (at level 1).
Definition update_icore (a: RData) b :=
mkRData (halt a) b (ihost a) (tstate a) (curid a) (cur_vmid a) (cur_vcpuid a) (regs a)
(lock a) (region_cnt a) (regions a) (shadow_ctxts a) (smmu_conf a) (log a) (oracle a) (slog a)
(soracle a) (doracle a) (core_doracle a) (data_log a) (core_data_log a) (shared a).
Notation "a {icore : b }" := (update_icore a b) (at level 1).
Definition update_ihost (a: RData) b :=
mkRData (halt a) (icore a) b (tstate a) (curid a) (cur_vmid a) (cur_vcpuid a) (regs a)
(lock a) (region_cnt a) (regions a) (shadow_ctxts a) (smmu_conf a) (log a) (oracle a) (slog a)
(soracle a) (doracle a) (core_doracle a) (data_log a) (core_data_log a) (shared a).
Notation "a {ihost : b }" := (update_ihost a b) (at level 1).
Definition update_tstate (a: RData) b :=
mkRData (halt a) (icore a) (ihost a) b (curid a) (cur_vmid a) (cur_vcpuid a) (regs a)
(lock a) (region_cnt a) (regions a) (shadow_ctxts a) (smmu_conf a) (log a) (oracle a) (slog a)
(soracle a) (doracle a) (core_doracle a) (data_log a) (core_data_log a) (shared a).
Notation "a {tstate : b }" := (update_tstate a b) (at level 1).
Definition update_curid (a: RData) b :=
mkRData (halt a) (icore a) (ihost a) (tstate a) b (cur_vmid a) (cur_vcpuid a) (regs a)
(lock a) (region_cnt a) (regions a) (shadow_ctxts a) (smmu_conf a) (log a) (oracle a) (slog a)
(soracle a) (doracle a) (core_doracle a) (data_log a) (core_data_log a) (shared a).
Notation "a {curid : b }" := (update_curid a b) (at level 1).
Definition update_cur_vmid (a: RData) b :=
mkRData (halt a) (icore a) (ihost a) (tstate a) (curid a) b (cur_vcpuid a) (regs a)
(lock a) (region_cnt a) (regions a) (shadow_ctxts a) (smmu_conf a) (log a) (oracle a) (slog a)
(soracle a) (doracle a) (core_doracle a) (data_log a) (core_data_log a) (shared a).
Notation "a {cur_vmid : b }" := (update_cur_vmid a b) (at level 1).
Definition update_cur_vcpuid (a: RData) b :=
mkRData (halt a) (icore a) (ihost a) (tstate a) (curid a) (cur_vmid a) b (regs a)
(lock a) (region_cnt a) (regions a) (shadow_ctxts a) (smmu_conf a) (log a) (oracle a) (slog a)
(soracle a) (doracle a) (core_doracle a) (data_log a) (core_data_log a) (shared a).
Notation "a {cur_vcpuid : b }" := (update_cur_vcpuid a b) (at level 1).
Definition update_regs (a: RData) b :=
mkRData (halt a) (icore a) (ihost a) (tstate a) (curid a) (cur_vmid a) (cur_vcpuid a) b
(lock a) (region_cnt a) (regions a) (shadow_ctxts a) (smmu_conf a) (log a) (oracle a) (slog a)
(soracle a) (doracle a) (core_doracle a) (data_log a) (core_data_log a) (shared a).
Notation "a {regs : b }" := (update_regs a b) (at level 1).
Definition update_lock (a: RData) b :=
mkRData (halt a) (icore a) (ihost a) (tstate a) (curid a) (cur_vmid a) (cur_vcpuid a) (regs a)
b (region_cnt a) (regions a) (shadow_ctxts a) (smmu_conf a) (log a) (oracle a) (slog a)
(soracle a) (doracle a) (core_doracle a) (data_log a) (core_data_log a) (shared a).
Notation "a {lock : b }" := (update_lock a b) (at level 1).
Definition update_region_cnt (a: RData) b :=
mkRData (halt a) (icore a) (ihost a) (tstate a) (curid a) (cur_vmid a) (cur_vcpuid a) (regs a)
(lock a) b (regions a) (shadow_ctxts a) (smmu_conf a) (log a) (oracle a) (slog a)
(soracle a) (doracle a) (core_doracle a) (data_log a) (core_data_log a) (shared a).
Notation "a {region_cnt : b }" := (update_region_cnt a b) (at level 1).
Definition update_regions (a: RData) b :=
mkRData (halt a) (icore a) (ihost a) (tstate a) (curid a) (cur_vmid a) (cur_vcpuid a) (regs a)
(lock a) (region_cnt a) b (shadow_ctxts a) (smmu_conf a) (log a) (oracle a) (slog a)
(soracle a) (doracle a) (core_doracle a) (data_log a) (core_data_log a) (shared a).
Notation "a {regions : b }" := (update_regions a b) (at level 1).
Definition update_shadow_ctxts (a: RData) b :=
mkRData (halt a) (icore a) (ihost a) (tstate a) (curid a) (cur_vmid a) (cur_vcpuid a) (regs a)
(lock a) (region_cnt a) (regions a) b (smmu_conf a) (log a) (oracle a) (slog a)
(soracle a) (doracle a) (core_doracle a) (data_log a) (core_data_log a) (shared a).
Notation "a {shadow_ctxts : b }" := (update_shadow_ctxts a b) (at level 1).
Definition update_smmu_conf (a: RData) b :=
mkRData (halt a) (icore a) (ihost a) (tstate a) (curid a) (cur_vmid a) (cur_vcpuid a) (regs a)
(lock a) (region_cnt a) (regions a) (shadow_ctxts a) b (log a) (oracle a) (slog a)
(soracle a) (doracle a) (core_doracle a) (data_log a) (core_data_log a) (shared a).
Notation "a {smmu_conf : b }" := (update_smmu_conf a b) (at level 1).
Definition update_log (a: RData) b :=
mkRData (halt a) (icore a) (ihost a) (tstate a) (curid a) (cur_vmid a) (cur_vcpuid a) (regs a)
(lock a) (region_cnt a) (regions a) (shadow_ctxts a) (smmu_conf a) b (oracle a) (slog a)
(soracle a) (doracle a) (core_doracle a) (data_log a) (core_data_log a) (shared a).
Notation "a {log : b }" := (update_log a b) (at level 1).
Definition update_oracle (a: RData) b :=
mkRData (halt a) (icore a) (ihost a) (tstate a) (curid a) (cur_vmid a) (cur_vcpuid a) (regs a)
(lock a) (region_cnt a) (regions a) (shadow_ctxts a) (smmu_conf a) (log a) b (slog a)
(soracle a) (doracle a) (core_doracle a) (data_log a) (core_data_log a) (shared a).
Notation "a {oracle : b }" := (update_oracle a b) (at level 1).
Definition update_slog (a: RData) b :=
mkRData (halt a) (icore a) (ihost a) (tstate a) (curid a) (cur_vmid a) (cur_vcpuid a) (regs a)
(lock a) (region_cnt a) (regions a) (shadow_ctxts a) (smmu_conf a) (log a) (oracle a) b
(soracle a) (doracle a) (core_doracle a) (data_log a) (core_data_log a) (shared a).
Notation "a {slog : b }" := (update_slog a b) (at level 1).
Definition update_soracle (a: RData) b :=
mkRData (halt a) (icore a) (ihost a) (tstate a) (curid a) (cur_vmid a) (cur_vcpuid a) (regs a)
(lock a) (region_cnt a) (regions a) (shadow_ctxts a) (smmu_conf a) (log a) (oracle a) (slog a)
b (doracle a) (core_doracle a) (data_log a) (core_data_log a) (shared a).
Notation "a {soracle : b }" := (update_soracle a b) (at level 1).
Definition update_doracle (a: RData) b :=
mkRData (halt a) (icore a) (ihost a) (tstate a) (curid a) (cur_vmid a) (cur_vcpuid a) (regs a)
(lock a) (region_cnt a) (regions a) (shadow_ctxts a) (smmu_conf a) (log a) (oracle a) (slog a)
(soracle a) b (core_doracle a) (data_log a) (core_data_log a) (shared a).
Notation "a {doracle : b }" := (update_doracle a b) (at level 1).
Definition update_core_doracle (a: RData) b :=
mkRData (halt a) (icore a) (ihost a) (tstate a) (curid a) (cur_vmid a) (cur_vcpuid a) (regs a)
(lock a) (region_cnt a) (regions a) (shadow_ctxts a) (smmu_conf a) (log a) (oracle a) (slog a)
(soracle a) (doracle a) b (data_log a) (core_data_log a) (shared a).
Notation "a {core_doracle : b }" := (update_core_doracle a b) (at level 1).
Definition update_data_log (a: RData) b :=
mkRData (halt a) (icore a) (ihost a) (tstate a) (curid a) (cur_vmid a) (cur_vcpuid a) (regs a)
(lock a) (region_cnt a) (regions a) (shadow_ctxts a) (smmu_conf a) (log a) (oracle a) (slog a)
(soracle a) (doracle a) (core_doracle a) b (core_data_log a) (shared a).
Notation "a {data_log : b }" := (update_data_log a b) (at level 1).
Definition update_core_data_log (a: RData) b :=
mkRData (halt a) (icore a) (ihost a) (tstate a) (curid a) (cur_vmid a) (cur_vcpuid a) (regs a)
(lock a) (region_cnt a) (regions a) (shadow_ctxts a) (smmu_conf a) (log a) (oracle a) (slog a)
(soracle a) (doracle a) (core_doracle a) (data_log a) b (shared a).
Notation "a {core_data_log : b }" := (update_core_data_log a b) (at level 1).
Definition update_shared (a: RData) b :=
mkRData (halt a) (icore a) (ihost a) (tstate a) (curid a) (cur_vmid a) (cur_vcpuid a) (regs a)
(lock a) (region_cnt a) (regions a) (shadow_ctxts a) (smmu_conf a) (log a) (oracle a) (slog a)
(soracle a) (doracle a) (core_doracle a) (data_log a) (core_data_log a) b.
Notation "a {shared : b }" := (update_shared a b) (at level 1).
Definition update_ctxt_regs (a: Ctxt) b :=
mkCtxt b (trap_regs a) (ctxt_states a).
Notation "a {ctxt_regs : b }" := (update_ctxt_regs a b) (at level 1).
Definition update_trap_regs (a: Ctxt) b :=
mkCtxt (ctxt_regs a) b (ctxt_states a).
Notation "a {trap_regs : b }" := (update_trap_regs a b) (at level 1).
Definition update_ctxt_states (a: Ctxt) b :=
mkCtxt (ctxt_regs a) (trap_regs a) b.
Notation "a {ctxt_states : b }" := (update_ctxt_states a b) (at level 1).
Definition update_pc (a: CtxtStates) b :=
mkCtxtStates b (pstate a) (dirty a) (flags a) (esr_el1 a) (spsr_0 a).
Notation "a {pc : b }" := (update_pc a b) (at level 1).
Definition update_pstate (a: CtxtStates) b :=
mkCtxtStates (pc a) b (dirty a) (flags a) (esr_el1 a) (spsr_0 a).
Notation "a {pstate : b }" := (update_pstate a b) (at level 1).
Definition update_dirty (a: CtxtStates) b :=
mkCtxtStates (pc a) (pstate a) b (flags a) (esr_el1 a) (spsr_0 a).
Notation "a {dirty : b }" := (update_dirty a b) (at level 1).
Definition update_flags (a: CtxtStates) b :=
mkCtxtStates (pc a) (pstate a) (dirty a) b (esr_el1 a) (spsr_0 a).
Notation "a {flags : b }" := (update_flags a b) (at level 1).
Definition update_esr_el1 (a: CtxtStates) b :=
mkCtxtStates (pc a) (pstate a) (dirty a) (flags a) b (spsr_0 a).
Notation "a {esr_el1 : b }" := (update_esr_el1 a b) (at level 1).
Definition update_spsr_0 (a: CtxtStates) b :=
mkCtxtStates (pc a) (pstate a) (dirty a) (flags a) (esr_el1 a) b.
Notation "a {spsr_0 : b }" := (update_spsr_0 a b) (at level 1).
Definition update_pmuselr_el0 (a: TrapRegs) b :=
mkTrapRegs b (pmuserenr_el0 a) (mdcr_el2 a) (cptr_el2 a) (cnthctl_el2 a).
Notation "a {pmuselr_el0 : b }" := (update_pmuselr_el0 a b) (at level 1).
Definition update_pmuserenr_el0 (a: TrapRegs) b :=
mkTrapRegs (pmuselr_el0 a) b (mdcr_el2 a) (cptr_el2 a) (cnthctl_el2 a).
Notation "a {pmuserenr_el0 : b }" := (update_pmuserenr_el0 a b) (at level 1).
Definition update_mdcr_el2 (a: TrapRegs) b :=
mkTrapRegs (pmuselr_el0 a) (pmuserenr_el0 a) b (cptr_el2 a) (cnthctl_el2 a).
Notation "a {mdcr_el2 : b }" := (update_mdcr_el2 a b) (at level 1).
Definition update_cptr_el2 (a: TrapRegs) b :=
mkTrapRegs (pmuselr_el0 a) (pmuserenr_el0 a) (mdcr_el2 a) b (cnthctl_el2 a).
Notation "a {cptr_el2 : b }" := (update_cptr_el2 a b) (at level 1).
Definition update_cnthctl_el2 (a: TrapRegs) b :=
mkTrapRegs (pmuselr_el0 a) (pmuserenr_el0 a) (mdcr_el2 a) (cptr_el2 a) b.
Notation "a {cnthctl_el2 : b }" := (update_cnthctl_el2 a b) (at level 1).
Definition update_x0 (a: CtxtRegs) b :=
mkCtxtRegs b (x1 a) (x2 a) (x3 a) (x4 a) (x5 a) (x6 a) (x7 a)
(x8 a) (x9 a) (x10 a) (x11 a) (x12 a) (x13 a) (x14 a) (x15 a)
(x16 a) (x17 a) (x18 a) (x19 a) (x20 a) (x21 a) (x22 a) (x23 a)
(x24 a) (x25 a) (x26 a) (x27 a) (x28 a) (x29 a) (x30 a) (fp_q0 a)
(fp_q1 a) (fp_q2 a) (fp_q3 a) (fp_q4 a) (fp_q5 a) (fp_q6 a) (fp_q7 a) (fp_q8 a)
(fp_q9 a) (fp_q10 a) (fp_q11 a) (fp_q12 a) (fp_q13 a) (fp_q14 a) (fp_q15 a) (fp_q16 a)
(fp_q17 a) (fp_q18 a) (fp_q19 a) (fp_q20 a) (fp_q21 a) (fp_q22 a) (fp_q23 a) (fp_q24 a)
(fp_q25 a) (fp_q26 a) (fp_q27 a) (fp_q28 a) (fp_q29 a) (fp_q30 a) (fp_q31 a) (fp_fpsr a)
(fp_fpcr a) (csselr_el1 a) (sctlr_el1 a) (cpacr_el1 a) (ttbr0_el1 a) (ttbr1_el1 a) (tcr_el1 a) (afsr0_el1 a)
(afsr1_el1 a) (far_el1 a) (mair_el1 a) (vbar_el1 a) (contextidr_el1 a) (amair_el1 a) (cntkctl_el1 a) (par_el1 a)
(tpidr_el1 a) (spsr_el1 a) (mdscr_el1 a) (sp_el0 a) (tpidr_el0 a) (tpidrro_el0 a) (spsr_el2 a) (vmpidr_el2 a)
(mpidr_el1 a) (actlr_el1 a) (sp_el1 a) (elr_el1 a) (elr_el2 a) (vttbr_el2 a) (hcr_el2 a) (tpidr_el2 a)
(esr_el2 a) (ec a) (far_el2 a) (hpfar_el2 a).
Notation "a {x0 : b }" := (update_x0 a b) (at level 1).
Definition update_x1 (a: CtxtRegs) b :=
mkCtxtRegs (x0 a) b (x2 a) (x3 a) (x4 a) (x5 a) (x6 a) (x7 a)
(x8 a) (x9 a) (x10 a) (x11 a) (x12 a) (x13 a) (x14 a) (x15 a)
(x16 a) (x17 a) (x18 a) (x19 a) (x20 a) (x21 a) (x22 a) (x23 a)
(x24 a) (x25 a) (x26 a) (x27 a) (x28 a) (x29 a) (x30 a) (fp_q0 a)
(fp_q1 a) (fp_q2 a) (fp_q3 a) (fp_q4 a) (fp_q5 a) (fp_q6 a) (fp_q7 a) (fp_q8 a)
(fp_q9 a) (fp_q10 a) (fp_q11 a) (fp_q12 a) (fp_q13 a) (fp_q14 a) (fp_q15 a) (fp_q16 a)
(fp_q17 a) (fp_q18 a) (fp_q19 a) (fp_q20 a) (fp_q21 a) (fp_q22 a) (fp_q23 a) (fp_q24 a)
(fp_q25 a) (fp_q26 a) (fp_q27 a) (fp_q28 a) (fp_q29 a) (fp_q30 a) (fp_q31 a) (fp_fpsr a)
(fp_fpcr a) (csselr_el1 a) (sctlr_el1 a) (cpacr_el1 a) (ttbr0_el1 a) (ttbr1_el1 a) (tcr_el1 a) (afsr0_el1 a)
(afsr1_el1 a) (far_el1 a) (mair_el1 a) (vbar_el1 a) (contextidr_el1 a) (amair_el1 a) (cntkctl_el1 a) (par_el1 a)
(tpidr_el1 a) (spsr_el1 a) (mdscr_el1 a) (sp_el0 a) (tpidr_el0 a) (tpidrro_el0 a) (spsr_el2 a) (vmpidr_el2 a)
(mpidr_el1 a) (actlr_el1 a) (sp_el1 a) (elr_el1 a) (elr_el2 a) (vttbr_el2 a) (hcr_el2 a) (tpidr_el2 a)
(esr_el2 a) (ec a) (far_el2 a) (hpfar_el2 a).
Notation "a {x1 : b }" := (update_x1 a b) (at level 1).
Definition update_x2 (a: CtxtRegs) b :=
mkCtxtRegs (x0 a) (x1 a) b (x3 a) (x4 a) (x5 a) (x6 a) (x7 a)
(x8 a) (x9 a) (x10 a) (x11 a) (x12 a) (x13 a) (x14 a) (x15 a)
(x16 a) (x17 a) (x18 a) (x19 a) (x20 a) (x21 a) (x22 a) (x23 a)
(x24 a) (x25 a) (x26 a) (x27 a) (x28 a) (x29 a) (x30 a) (fp_q0 a)
(fp_q1 a) (fp_q2 a) (fp_q3 a) (fp_q4 a) (fp_q5 a) (fp_q6 a) (fp_q7 a) (fp_q8 a)
(fp_q9 a) (fp_q10 a) (fp_q11 a) (fp_q12 a) (fp_q13 a) (fp_q14 a) (fp_q15 a) (fp_q16 a)
(fp_q17 a) (fp_q18 a) (fp_q19 a) (fp_q20 a) (fp_q21 a) (fp_q22 a) (fp_q23 a) (fp_q24 a)
(fp_q25 a) (fp_q26 a) (fp_q27 a) (fp_q28 a) (fp_q29 a) (fp_q30 a) (fp_q31 a) (fp_fpsr a)
(fp_fpcr a) (csselr_el1 a) (sctlr_el1 a) (cpacr_el1 a) (ttbr0_el1 a) (ttbr1_el1 a) (tcr_el1 a) (afsr0_el1 a)
(afsr1_el1 a) (far_el1 a) (mair_el1 a) (vbar_el1 a) (contextidr_el1 a) (amair_el1 a) (cntkctl_el1 a) (par_el1 a)
(tpidr_el1 a) (spsr_el1 a) (mdscr_el1 a) (sp_el0 a) (tpidr_el0 a) (tpidrro_el0 a) (spsr_el2 a) (vmpidr_el2 a)
(mpidr_el1 a) (actlr_el1 a) (sp_el1 a) (elr_el1 a) (elr_el2 a) (vttbr_el2 a) (hcr_el2 a) (tpidr_el2 a)
(esr_el2 a) (ec a) (far_el2 a) (hpfar_el2 a).
Notation "a {x2 : b }" := (update_x2 a b) (at level 1).
Definition update_x3 (a: CtxtRegs) b :=
mkCtxtRegs (x0 a) (x1 a) (x2 a) b (x4 a) (x5 a) (x6 a) (x7 a)
(x8 a) (x9 a) (x10 a) (x11 a) (x12 a) (x13 a) (x14 a) (x15 a)
(x16 a) (x17 a) (x18 a) (x19 a) (x20 a) (x21 a) (x22 a) (x23 a)
(x24 a) (x25 a) (x26 a) (x27 a) (x28 a) (x29 a) (x30 a) (fp_q0 a)
(fp_q1 a) (fp_q2 a) (fp_q3 a) (fp_q4 a) (fp_q5 a) (fp_q6 a) (fp_q7 a) (fp_q8 a)
(fp_q9 a) (fp_q10 a) (fp_q11 a) (fp_q12 a) (fp_q13 a) (fp_q14 a) (fp_q15 a) (fp_q16 a)
(fp_q17 a) (fp_q18 a) (fp_q19 a) (fp_q20 a) (fp_q21 a) (fp_q22 a) (fp_q23 a) (fp_q24 a)
(fp_q25 a) (fp_q26 a) (fp_q27 a) (fp_q28 a) (fp_q29 a) (fp_q30 a) (fp_q31 a) (fp_fpsr a)
(fp_fpcr a) (csselr_el1 a) (sctlr_el1 a) (cpacr_el1 a) (ttbr0_el1 a) (ttbr1_el1 a) (tcr_el1 a) (afsr0_el1 a)
(afsr1_el1 a) (far_el1 a) (mair_el1 a) (vbar_el1 a) (contextidr_el1 a) (amair_el1 a) (cntkctl_el1 a) (par_el1 a)
(tpidr_el1 a) (spsr_el1 a) (mdscr_el1 a) (sp_el0 a) (tpidr_el0 a) (tpidrro_el0 a) (spsr_el2 a) (vmpidr_el2 a)
(mpidr_el1 a) (actlr_el1 a) (sp_el1 a) (elr_el1 a) (elr_el2 a) (vttbr_el2 a) (hcr_el2 a) (tpidr_el2 a)
(esr_el2 a) (ec a) (far_el2 a) (hpfar_el2 a).
Notation "a {x3 : b }" := (update_x3 a b) (at level 1).
Definition update_x4 (a: CtxtRegs) b :=
mkCtxtRegs (x0 a) (x1 a) (x2 a) (x3 a) b (x5 a) (x6 a) (x7 a)
(x8 a) (x9 a) (x10 a) (x11 a) (x12 a) (x13 a) (x14 a) (x15 a)
(x16 a) (x17 a) (x18 a) (x19 a) (x20 a) (x21 a) (x22 a) (x23 a)
(x24 a) (x25 a) (x26 a) (x27 a) (x28 a) (x29 a) (x30 a) (fp_q0 a)
(fp_q1 a) (fp_q2 a) (fp_q3 a) (fp_q4 a) (fp_q5 a) (fp_q6 a) (fp_q7 a) (fp_q8 a)
(fp_q9 a) (fp_q10 a) (fp_q11 a) (fp_q12 a) (fp_q13 a) (fp_q14 a) (fp_q15 a) (fp_q16 a)
(fp_q17 a) (fp_q18 a) (fp_q19 a) (fp_q20 a) (fp_q21 a) (fp_q22 a) (fp_q23 a) (fp_q24 a)
(fp_q25 a) (fp_q26 a) (fp_q27 a) (fp_q28 a) (fp_q29 a) (fp_q30 a) (fp_q31 a) (fp_fpsr a)
(fp_fpcr a) (csselr_el1 a) (sctlr_el1 a) (cpacr_el1 a) (ttbr0_el1 a) (ttbr1_el1 a) (tcr_el1 a) (afsr0_el1 a)
(afsr1_el1 a) (far_el1 a) (mair_el1 a) (vbar_el1 a) (contextidr_el1 a) (amair_el1 a) (cntkctl_el1 a) (par_el1 a)
(tpidr_el1 a) (spsr_el1 a) (mdscr_el1 a) (sp_el0 a) (tpidr_el0 a) (tpidrro_el0 a) (spsr_el2 a) (vmpidr_el2 a)
(mpidr_el1 a) (actlr_el1 a) (sp_el1 a) (elr_el1 a) (elr_el2 a) (vttbr_el2 a) (hcr_el2 a) (tpidr_el2 a)
(esr_el2 a) (ec a) (far_el2 a) (hpfar_el2 a).
Notation "a {x4 : b }" := (update_x4 a b) (at level 1).
Definition update_x5 (a: CtxtRegs) b :=
mkCtxtRegs (x0 a) (x1 a) (x2 a) (x3 a) (x4 a) b (x6 a) (x7 a)
(x8 a) (x9 a) (x10 a) (x11 a) (x12 a) (x13 a) (x14 a) (x15 a)
(x16 a) (x17 a) (x18 a) (x19 a) (x20 a) (x21 a) (x22 a) (x23 a)
(x24 a) (x25 a) (x26 a) (x27 a) (x28 a) (x29 a) (x30 a) (fp_q0 a)
(fp_q1 a) (fp_q2 a) (fp_q3 a) (fp_q4 a) (fp_q5 a) (fp_q6 a) (fp_q7 a) (fp_q8 a)
(fp_q9 a) (fp_q10 a) (fp_q11 a) (fp_q12 a) (fp_q13 a) (fp_q14 a) (fp_q15 a) (fp_q16 a)
(fp_q17 a) (fp_q18 a) (fp_q19 a) (fp_q20 a) (fp_q21 a) (fp_q22 a) (fp_q23 a) (fp_q24 a)
(fp_q25 a) (fp_q26 a) (fp_q27 a) (fp_q28 a) (fp_q29 a) (fp_q30 a) (fp_q31 a) (fp_fpsr a)
(fp_fpcr a) (csselr_el1 a) (sctlr_el1 a) (cpacr_el1 a) (ttbr0_el1 a) (ttbr1_el1 a) (tcr_el1 a) (afsr0_el1 a)
(afsr1_el1 a) (far_el1 a) (mair_el1 a) (vbar_el1 a) (contextidr_el1 a) (amair_el1 a) (cntkctl_el1 a) (par_el1 a)
(tpidr_el1 a) (spsr_el1 a) (mdscr_el1 a) (sp_el0 a) (tpidr_el0 a) (tpidrro_el0 a) (spsr_el2 a) (vmpidr_el2 a)
(mpidr_el1 a) (actlr_el1 a) (sp_el1 a) (elr_el1 a) (elr_el2 a) (vttbr_el2 a) (hcr_el2 a) (tpidr_el2 a)
(esr_el2 a) (ec a) (far_el2 a) (hpfar_el2 a).
Notation "a {x5 : b }" := (update_x5 a b) (at level 1).
Definition update_x6 (a: CtxtRegs) b :=
mkCtxtRegs (x0 a) (x1 a) (x2 a) (x3 a) (x4 a) (x5 a) b (x7 a)
(x8 a) (x9 a) (x10 a) (x11 a) (x12 a) (x13 a) (x14 a) (x15 a)
(x16 a) (x17 a) (x18 a) (x19 a) (x20 a) (x21 a) (x22 a) (x23 a)
(x24 a) (x25 a) (x26 a) (x27 a) (x28 a) (x29 a) (x30 a) (fp_q0 a)
(fp_q1 a) (fp_q2 a) (fp_q3 a) (fp_q4 a) (fp_q5 a) (fp_q6 a) (fp_q7 a) (fp_q8 a)
(fp_q9 a) (fp_q10 a) (fp_q11 a) (fp_q12 a) (fp_q13 a) (fp_q14 a) (fp_q15 a) (fp_q16 a)
(fp_q17 a) (fp_q18 a) (fp_q19 a) (fp_q20 a) (fp_q21 a) (fp_q22 a) (fp_q23 a) (fp_q24 a)
(fp_q25 a) (fp_q26 a) (fp_q27 a) (fp_q28 a) (fp_q29 a) (fp_q30 a) (fp_q31 a) (fp_fpsr a)
(fp_fpcr a) (csselr_el1 a) (sctlr_el1 a) (cpacr_el1 a) (ttbr0_el1 a) (ttbr1_el1 a) (tcr_el1 a) (afsr0_el1 a)
(afsr1_el1 a) (far_el1 a) (mair_el1 a) (vbar_el1 a) (contextidr_el1 a) (amair_el1 a) (cntkctl_el1 a) (par_el1 a)
(tpidr_el1 a) (spsr_el1 a) (mdscr_el1 a) (sp_el0 a) (tpidr_el0 a) (tpidrro_el0 a) (spsr_el2 a) (vmpidr_el2 a)
(mpidr_el1 a) (actlr_el1 a) (sp_el1 a) (elr_el1 a) (elr_el2 a) (vttbr_el2 a) (hcr_el2 a) (tpidr_el2 a)
(esr_el2 a) (ec a) (far_el2 a) (hpfar_el2 a).
Notation "a {x6 : b }" := (update_x6 a b) (at level 1).
Definition update_x7 (a: CtxtRegs) b :=
mkCtxtRegs (x0 a) (x1 a) (x2 a) (x3 a) (x4 a) (x5 a) (x6 a) b
(x8 a) (x9 a) (x10 a) (x11 a) (x12 a) (x13 a) (x14 a) (x15 a)
(x16 a) (x17 a) (x18 a) (x19 a) (x20 a) (x21 a) (x22 a) (x23 a)
(x24 a) (x25 a) (x26 a) (x27 a) (x28 a) (x29 a) (x30 a) (fp_q0 a)
(fp_q1 a) (fp_q2 a) (fp_q3 a) (fp_q4 a) (fp_q5 a) (fp_q6 a) (fp_q7 a) (fp_q8 a)
(fp_q9 a) (fp_q10 a) (fp_q11 a) (fp_q12 a) (fp_q13 a) (fp_q14 a) (fp_q15 a) (fp_q16 a)
(fp_q17 a) (fp_q18 a) (fp_q19 a) (fp_q20 a) (fp_q21 a) (fp_q22 a) (fp_q23 a) (fp_q24 a)
(fp_q25 a) (fp_q26 a) (fp_q27 a) (fp_q28 a) (fp_q29 a) (fp_q30 a) (fp_q31 a) (fp_fpsr a)
(fp_fpcr a) (csselr_el1 a) (sctlr_el1 a) (cpacr_el1 a) (ttbr0_el1 a) (ttbr1_el1 a) (tcr_el1 a) (afsr0_el1 a)
(afsr1_el1 a) (far_el1 a) (mair_el1 a) (vbar_el1 a) (contextidr_el1 a) (amair_el1 a) (cntkctl_el1 a) (par_el1 a)
(tpidr_el1 a) (spsr_el1 a) (mdscr_el1 a) (sp_el0 a) (tpidr_el0 a) (tpidrro_el0 a) (spsr_el2 a) (vmpidr_el2 a)
(mpidr_el1 a) (actlr_el1 a) (sp_el1 a) (elr_el1 a) (elr_el2 a) (vttbr_el2 a) (hcr_el2 a) (tpidr_el2 a)
(esr_el2 a) (ec a) (far_el2 a) (hpfar_el2 a).
Notation "a {x7 : b }" := (update_x7 a b) (at level 1).
Definition update_x8 (a: CtxtRegs) b :=
mkCtxtRegs (x0 a) (x1 a) (x2 a) (x3 a) (x4 a) (x5 a) (x6 a) (x7 a)
b (x9 a) (x10 a) (x11 a) (x12 a) (x13 a) (x14 a) (x15 a)
(x16 a) (x17 a) (x18 a) (x19 a) (x20 a) (x21 a) (x22 a) (x23 a)
(x24 a) (x25 a) (x26 a) (x27 a) (x28 a) (x29 a) (x30 a) (fp_q0 a)
(fp_q1 a) (fp_q2 a) (fp_q3 a) (fp_q4 a) (fp_q5 a) (fp_q6 a) (fp_q7 a) (fp_q8 a)
(fp_q9 a) (fp_q10 a) (fp_q11 a) (fp_q12 a) (fp_q13 a) (fp_q14 a) (fp_q15 a) (fp_q16 a)
(fp_q17 a) (fp_q18 a) (fp_q19 a) (fp_q20 a) (fp_q21 a) (fp_q22 a) (fp_q23 a) (fp_q24 a)
(fp_q25 a) (fp_q26 a) (fp_q27 a) (fp_q28 a) (fp_q29 a) (fp_q30 a) (fp_q31 a) (fp_fpsr a)
(fp_fpcr a) (csselr_el1 a) (sctlr_el1 a) (cpacr_el1 a) (ttbr0_el1 a) (ttbr1_el1 a) (tcr_el1 a) (afsr0_el1 a)
(afsr1_el1 a) (far_el1 a) (mair_el1 a) (vbar_el1 a) (contextidr_el1 a) (amair_el1 a) (cntkctl_el1 a) (par_el1 a)
(tpidr_el1 a) (spsr_el1 a) (mdscr_el1 a) (sp_el0 a) (tpidr_el0 a) (tpidrro_el0 a) (spsr_el2 a) (vmpidr_el2 a)
(mpidr_el1 a) (actlr_el1 a) (sp_el1 a) (elr_el1 a) (elr_el2 a) (vttbr_el2 a) (hcr_el2 a) (tpidr_el2 a)
(esr_el2 a) (ec a) (far_el2 a) (hpfar_el2 a).
Notation "a {x8 : b }" := (update_x8 a b) (at level 1).
Definition update_x9 (a: CtxtRegs) b :=
mkCtxtRegs (x0 a) (x1 a) (x2 a) (x3 a) (x4 a) (x5 a) (x6 a) (x7 a)
(x8 a) b (x10 a) (x11 a) (x12 a) (x13 a) (x14 a) (x15 a)
(x16 a) (x17 a) (x18 a) (x19 a) (x20 a) (x21 a) (x22 a) (x23 a)
(x24 a) (x25 a) (x26 a) (x27 a) (x28 a) (x29 a) (x30 a) (fp_q0 a)
(fp_q1 a) (fp_q2 a) (fp_q3 a) (fp_q4 a) (fp_q5 a) (fp_q6 a) (fp_q7 a) (fp_q8 a)
(fp_q9 a) (fp_q10 a) (fp_q11 a) (fp_q12 a) (fp_q13 a) (fp_q14 a) (fp_q15 a) (fp_q16 a)
(fp_q17 a) (fp_q18 a) (fp_q19 a) (fp_q20 a) (fp_q21 a) (fp_q22 a) (fp_q23 a) (fp_q24 a)
(fp_q25 a) (fp_q26 a) (fp_q27 a) (fp_q28 a) (fp_q29 a) (fp_q30 a) (fp_q31 a) (fp_fpsr a)
(fp_fpcr a) (csselr_el1 a) (sctlr_el1 a) (cpacr_el1 a) (ttbr0_el1 a) (ttbr1_el1 a) (tcr_el1 a) (afsr0_el1 a)
(afsr1_el1 a) (far_el1 a) (mair_el1 a) (vbar_el1 a) (contextidr_el1 a) (amair_el1 a) (cntkctl_el1 a) (par_el1 a)
(tpidr_el1 a) (spsr_el1 a) (mdscr_el1 a) (sp_el0 a) (tpidr_el0 a) (tpidrro_el0 a) (spsr_el2 a) (vmpidr_el2 a)
(mpidr_el1 a) (actlr_el1 a) (sp_el1 a) (elr_el1 a) (elr_el2 a) (vttbr_el2 a) (hcr_el2 a) (tpidr_el2 a)
(esr_el2 a) (ec a) (far_el2 a) (hpfar_el2 a).
Notation "a {x9 : b }" := (update_x9 a b) (at level 1).
Definition update_x10 (a: CtxtRegs) b :=
mkCtxtRegs (x0 a) (x1 a) (x2 a) (x3 a) (x4 a) (x5 a) (x6 a) (x7 a)
(x8 a) (x9 a) b (x11 a) (x12 a) (x13 a) (x14 a) (x15 a)
(x16 a) (x17 a) (x18 a) (x19 a) (x20 a) (x21 a) (x22 a) (x23 a)
(x24 a) (x25 a) (x26 a) (x27 a) (x28 a) (x29 a) (x30 a) (fp_q0 a)
(fp_q1 a) (fp_q2 a) (fp_q3 a) (fp_q4 a) (fp_q5 a) (fp_q6 a) (fp_q7 a) (fp_q8 a)
(fp_q9 a) (fp_q10 a) (fp_q11 a) (fp_q12 a) (fp_q13 a) (fp_q14 a) (fp_q15 a) (fp_q16 a)
(fp_q17 a) (fp_q18 a) (fp_q19 a) (fp_q20 a) (fp_q21 a) (fp_q22 a) (fp_q23 a) (fp_q24 a)
(fp_q25 a) (fp_q26 a) (fp_q27 a) (fp_q28 a) (fp_q29 a) (fp_q30 a) (fp_q31 a) (fp_fpsr a)
(fp_fpcr a) (csselr_el1 a) (sctlr_el1 a) (cpacr_el1 a) (ttbr0_el1 a) (ttbr1_el1 a) (tcr_el1 a) (afsr0_el1 a)
(afsr1_el1 a) (far_el1 a) (mair_el1 a) (vbar_el1 a) (contextidr_el1 a) (amair_el1 a) (cntkctl_el1 a) (par_el1 a)
(tpidr_el1 a) (spsr_el1 a) (mdscr_el1 a) (sp_el0 a) (tpidr_el0 a) (tpidrro_el0 a) (spsr_el2 a) (vmpidr_el2 a)
(mpidr_el1 a) (actlr_el1 a) (sp_el1 a) (elr_el1 a) (elr_el2 a) (vttbr_el2 a) (hcr_el2 a) (tpidr_el2 a)
(esr_el2 a) (ec a) (far_el2 a) (hpfar_el2 a).
Notation "a {x10 : b }" := (update_x10 a b) (at level 1).
Definition update_x11 (a: CtxtRegs) b :=
mkCtxtRegs (x0 a) (x1 a) (x2 a) (x3 a) (x4 a) (x5 a) (x6 a) (x7 a)
(x8 a) (x9 a) (x10 a) b (x12 a) (x13 a) (x14 a) (x15 a)
(x16 a) (x17 a) (x18 a) (x19 a) (x20 a) (x21 a) (x22 a) (x23 a)
(x24 a) (x25 a) (x26 a) (x27 a) (x28 a) (x29 a) (x30 a) (fp_q0 a)
(fp_q1 a) (fp_q2 a) (fp_q3 a) (fp_q4 a) (fp_q5 a) (fp_q6 a) (fp_q7 a) (fp_q8 a)
(fp_q9 a) (fp_q10 a) (fp_q11 a) (fp_q12 a) (fp_q13 a) (fp_q14 a) (fp_q15 a) (fp_q16 a)
(fp_q17 a) (fp_q18 a) (fp_q19 a) (fp_q20 a) (fp_q21 a) (fp_q22 a) (fp_q23 a) (fp_q24 a)
(fp_q25 a) (fp_q26 a) (fp_q27 a) (fp_q28 a) (fp_q29 a) (fp_q30 a) (fp_q31 a) (fp_fpsr a)
(fp_fpcr a) (csselr_el1 a) (sctlr_el1 a) (cpacr_el1 a) (ttbr0_el1 a) (ttbr1_el1 a) (tcr_el1 a) (afsr0_el1 a)
(afsr1_el1 a) (far_el1 a) (mair_el1 a) (vbar_el1 a) (contextidr_el1 a) (amair_el1 a) (cntkctl_el1 a) (par_el1 a)
(tpidr_el1 a) (spsr_el1 a) (mdscr_el1 a) (sp_el0 a) (tpidr_el0 a) (tpidrro_el0 a) (spsr_el2 a) (vmpidr_el2 a)
(mpidr_el1 a) (actlr_el1 a) (sp_el1 a) (elr_el1 a) (elr_el2 a) (vttbr_el2 a) (hcr_el2 a) (tpidr_el2 a)
(esr_el2 a) (ec a) (far_el2 a) (hpfar_el2 a).
Notation "a {x11 : b }" := (update_x11 a b) (at level 1).
Definition update_x12 (a: CtxtRegs) b :=
mkCtxtRegs (x0 a) (x1 a) (x2 a) (x3 a) (x4 a) (x5 a) (x6 a) (x7 a)
(x8 a) (x9 a) (x10 a) (x11 a) b (x13 a) (x14 a) (x15 a)
(x16 a) (x17 a) (x18 a) (x19 a) (x20 a) (x21 a) (x22 a) (x23 a)
(x24 a) (x25 a) (x26 a) (x27 a) (x28 a) (x29 a) (x30 a) (fp_q0 a)
(fp_q1 a) (fp_q2 a) (fp_q3 a) (fp_q4 a) (fp_q5 a) (fp_q6 a) (fp_q7 a) (fp_q8 a)
(fp_q9 a) (fp_q10 a) (fp_q11 a) (fp_q12 a) (fp_q13 a) (fp_q14 a) (fp_q15 a) (fp_q16 a)
(fp_q17 a) (fp_q18 a) (fp_q19 a) (fp_q20 a) (fp_q21 a) (fp_q22 a) (fp_q23 a) (fp_q24 a)
(fp_q25 a) (fp_q26 a) (fp_q27 a) (fp_q28 a) (fp_q29 a) (fp_q30 a) (fp_q31 a) (fp_fpsr a)
(fp_fpcr a) (csselr_el1 a) (sctlr_el1 a) (cpacr_el1 a) (ttbr0_el1 a) (ttbr1_el1 a) (tcr_el1 a) (afsr0_el1 a)
(afsr1_el1 a) (far_el1 a) (mair_el1 a) (vbar_el1 a) (contextidr_el1 a) (amair_el1 a) (cntkctl_el1 a) (par_el1 a)
(tpidr_el1 a) (spsr_el1 a) (mdscr_el1 a) (sp_el0 a) (tpidr_el0 a) (tpidrro_el0 a) (spsr_el2 a) (vmpidr_el2 a)
(mpidr_el1 a) (actlr_el1 a) (sp_el1 a) (elr_el1 a) (elr_el2 a) (vttbr_el2 a) (hcr_el2 a) (tpidr_el2 a)
(esr_el2 a) (ec a) (far_el2 a) (hpfar_el2 a).
Notation "a {x12 : b }" := (update_x12 a b) (at level 1).
Definition update_x13 (a: CtxtRegs) b :=
mkCtxtRegs (x0 a) (x1 a) (x2 a) (x3 a) (x4 a) (x5 a) (x6 a) (x7 a)
(x8 a) (x9 a) (x10 a) (x11 a) (x12 a) b (x14 a) (x15 a)
(x16 a) (x17 a) (x18 a) (x19 a) (x20 a) (x21 a) (x22 a) (x23 a)
(x24 a) (x25 a) (x26 a) (x27 a) (x28 a) (x29 a) (x30 a) (fp_q0 a)
(fp_q1 a) (fp_q2 a) (fp_q3 a) (fp_q4 a) (fp_q5 a) (fp_q6 a) (fp_q7 a) (fp_q8 a)
(fp_q9 a) (fp_q10 a) (fp_q11 a) (fp_q12 a) (fp_q13 a) (fp_q14 a) (fp_q15 a) (fp_q16 a)
(fp_q17 a) (fp_q18 a) (fp_q19 a) (fp_q20 a) (fp_q21 a) (fp_q22 a) (fp_q23 a) (fp_q24 a)
(fp_q25 a) (fp_q26 a) (fp_q27 a) (fp_q28 a) (fp_q29 a) (fp_q30 a) (fp_q31 a) (fp_fpsr a)
(fp_fpcr a) (csselr_el1 a) (sctlr_el1 a) (cpacr_el1 a) (ttbr0_el1 a) (ttbr1_el1 a) (tcr_el1 a) (afsr0_el1 a)
(afsr1_el1 a) (far_el1 a) (mair_el1 a) (vbar_el1 a) (contextidr_el1 a) (amair_el1 a) (cntkctl_el1 a) (par_el1 a)
(tpidr_el1 a) (spsr_el1 a) (mdscr_el1 a) (sp_el0 a) (tpidr_el0 a) (tpidrro_el0 a) (spsr_el2 a) (vmpidr_el2 a)
(mpidr_el1 a) (actlr_el1 a) (sp_el1 a) (elr_el1 a) (elr_el2 a) (vttbr_el2 a) (hcr_el2 a) (tpidr_el2 a)
(esr_el2 a) (ec a) (far_el2 a) (hpfar_el2 a).
Notation "a {x13 : b }" := (update_x13 a b) (at level 1).
Definition update_x14 (a: CtxtRegs) b :=
mkCtxtRegs (x0 a) (x1 a) (x2 a) (x3 a) (x4 a) (x5 a) (x6 a) (x7 a)
(x8 a) (x9 a) (x10 a) (x11 a) (x12 a) (x13 a) b (x15 a)
(x16 a) (x17 a) (x18 a) (x19 a) (x20 a) (x21 a) (x22 a) (x23 a)
(x24 a) (x25 a) (x26 a) (x27 a) (x28 a) (x29 a) (x30 a) (fp_q0 a)
(fp_q1 a) (fp_q2 a) (fp_q3 a) (fp_q4 a) (fp_q5 a) (fp_q6 a) (fp_q7 a) (fp_q8 a)
(fp_q9 a) (fp_q10 a) (fp_q11 a) (fp_q12 a) (fp_q13 a) (fp_q14 a) (fp_q15 a) (fp_q16 a)
(fp_q17 a) (fp_q18 a) (fp_q19 a) (fp_q20 a) (fp_q21 a) (fp_q22 a) (fp_q23 a) (fp_q24 a)
(fp_q25 a) (fp_q26 a) (fp_q27 a) (fp_q28 a) (fp_q29 a) (fp_q30 a) (fp_q31 a) (fp_fpsr a)
(fp_fpcr a) (csselr_el1 a) (sctlr_el1 a) (cpacr_el1 a) (ttbr0_el1 a) (ttbr1_el1 a) (tcr_el1 a) (afsr0_el1 a)
(afsr1_el1 a) (far_el1 a) (mair_el1 a) (vbar_el1 a) (contextidr_el1 a) (amair_el1 a) (cntkctl_el1 a) (par_el1 a)
(tpidr_el1 a) (spsr_el1 a) (mdscr_el1 a) (sp_el0 a) (tpidr_el0 a) (tpidrro_el0 a) (spsr_el2 a) (vmpidr_el2 a)
(mpidr_el1 a) (actlr_el1 a) (sp_el1 a) (elr_el1 a) (elr_el2 a) (vttbr_el2 a) (hcr_el2 a) (tpidr_el2 a)
(esr_el2 a) (ec a) (far_el2 a) (hpfar_el2 a).
Notation "a {x14 : b }" := (update_x14 a b) (at level 1).
Definition update_x15 (a: CtxtRegs) b :=
mkCtxtRegs (x0 a) (x1 a) (x2 a) (x3 a) (x4 a) (x5 a) (x6 a) (x7 a)
(x8 a) (x9 a) (x10 a) (x11 a) (x12 a) (x13 a) (x14 a) b
(x16 a) (x17 a) (x18 a) (x19 a) (x20 a) (x21 a) (x22 a) (x23 a)
(x24 a) (x25 a) (x26 a) (x27 a) (x28 a) (x29 a) (x30 a) (fp_q0 a)
(fp_q1 a) (fp_q2 a) (fp_q3 a) (fp_q4 a) (fp_q5 a) (fp_q6 a) (fp_q7 a) (fp_q8 a)
(fp_q9 a) (fp_q10 a) (fp_q11 a) (fp_q12 a) (fp_q13 a) (fp_q14 a) (fp_q15 a) (fp_q16 a)
(fp_q17 a) (fp_q18 a) (fp_q19 a) (fp_q20 a) (fp_q21 a) (fp_q22 a) (fp_q23 a) (fp_q24 a)
(fp_q25 a) (fp_q26 a) (fp_q27 a) (fp_q28 a) (fp_q29 a) (fp_q30 a) (fp_q31 a) (fp_fpsr a)
(fp_fpcr a) (csselr_el1 a) (sctlr_el1 a) (cpacr_el1 a) (ttbr0_el1 a) (ttbr1_el1 a) (tcr_el1 a) (afsr0_el1 a)
(afsr1_el1 a) (far_el1 a) (mair_el1 a) (vbar_el1 a) (contextidr_el1 a) (amair_el1 a) (cntkctl_el1 a) (par_el1 a)
(tpidr_el1 a) (spsr_el1 a) (mdscr_el1 a) (sp_el0 a) (tpidr_el0 a) (tpidrro_el0 a) (spsr_el2 a) (vmpidr_el2 a)
(mpidr_el1 a) (actlr_el1 a) (sp_el1 a) (elr_el1 a) (elr_el2 a) (vttbr_el2 a) (hcr_el2 a) (tpidr_el2 a)
(esr_el2 a) (ec a) (far_el2 a) (hpfar_el2 a).
Notation "a {x15 : b }" := (update_x15 a b) (at level 1).
Definition update_x16 (a: CtxtRegs) b :=
mkCtxtRegs (x0 a) (x1 a) (x2 a) (x3 a) (x4 a) (x5 a) (x6 a) (x7 a)
(x8 a) (x9 a) (x10 a) (x11 a) (x12 a) (x13 a) (x14 a) (x15 a)
b (x17 a) (x18 a) (x19 a) (x20 a) (x21 a) (x22 a) (x23 a)
(x24 a) (x25 a) (x26 a) (x27 a) (x28 a) (x29 a) (x30 a) (fp_q0 a)
(fp_q1 a) (fp_q2 a) (fp_q3 a) (fp_q4 a) (fp_q5 a) (fp_q6 a) (fp_q7 a) (fp_q8 a)
(fp_q9 a) (fp_q10 a) (fp_q11 a) (fp_q12 a) (fp_q13 a) (fp_q14 a) (fp_q15 a) (fp_q16 a)
(fp_q17 a) (fp_q18 a) (fp_q19 a) (fp_q20 a) (fp_q21 a) (fp_q22 a) (fp_q23 a) (fp_q24 a)
(fp_q25 a) (fp_q26 a) (fp_q27 a) (fp_q28 a) (fp_q29 a) (fp_q30 a) (fp_q31 a) (fp_fpsr a)
(fp_fpcr a) (csselr_el1 a) (sctlr_el1 a) (cpacr_el1 a) (ttbr0_el1 a) (ttbr1_el1 a) (tcr_el1 a) (afsr0_el1 a)
(afsr1_el1 a) (far_el1 a) (mair_el1 a) (vbar_el1 a) (contextidr_el1 a) (amair_el1 a) (cntkctl_el1 a) (par_el1 a)
(tpidr_el1 a) (spsr_el1 a) (mdscr_el1 a) (sp_el0 a) (tpidr_el0 a) (tpidrro_el0 a) (spsr_el2 a) (vmpidr_el2 a)
(mpidr_el1 a) (actlr_el1 a) (sp_el1 a) (elr_el1 a) (elr_el2 a) (vttbr_el2 a) (hcr_el2 a) (tpidr_el2 a)
(esr_el2 a) (ec a) (far_el2 a) (hpfar_el2 a).
Notation "a {x16 : b }" := (update_x16 a b) (at level 1).
Definition update_x17 (a: CtxtRegs) b :=
mkCtxtRegs (x0 a) (x1 a) (x2 a) (x3 a) (x4 a) (x5 a) (x6 a) (x7 a)
(x8 a) (x9 a) (x10 a) (x11 a) (x12 a) (x13 a) (x14 a) (x15 a)
(x16 a) b (x18 a) (x19 a) (x20 a) (x21 a) (x22 a) (x23 a)
(x24 a) (x25 a) (x26 a) (x27 a) (x28 a) (x29 a) (x30 a) (fp_q0 a)
(fp_q1 a) (fp_q2 a) (fp_q3 a) (fp_q4 a) (fp_q5 a) (fp_q6 a) (fp_q7 a) (fp_q8 a)
(fp_q9 a) (fp_q10 a) (fp_q11 a) (fp_q12 a) (fp_q13 a) (fp_q14 a) (fp_q15 a) (fp_q16 a)
(fp_q17 a) (fp_q18 a) (fp_q19 a) (fp_q20 a) (fp_q21 a) (fp_q22 a) (fp_q23 a) (fp_q24 a)
(fp_q25 a) (fp_q26 a) (fp_q27 a) (fp_q28 a) (fp_q29 a) (fp_q30 a) (fp_q31 a) (fp_fpsr a)
(fp_fpcr a) (csselr_el1 a) (sctlr_el1 a) (cpacr_el1 a) (ttbr0_el1 a) (ttbr1_el1 a) (tcr_el1 a) (afsr0_el1 a)
(afsr1_el1 a) (far_el1 a) (mair_el1 a) (vbar_el1 a) (contextidr_el1 a) (amair_el1 a) (cntkctl_el1 a) (par_el1 a)
(tpidr_el1 a) (spsr_el1 a) (mdscr_el1 a) (sp_el0 a) (tpidr_el0 a) (tpidrro_el0 a) (spsr_el2 a) (vmpidr_el2 a)
(mpidr_el1 a) (actlr_el1 a) (sp_el1 a) (elr_el1 a) (elr_el2 a) (vttbr_el2 a) (hcr_el2 a) (tpidr_el2 a)
(esr_el2 a) (ec a) (far_el2 a) (hpfar_el2 a).
Notation "a {x17 : b }" := (update_x17 a b) (at level 1).
Definition update_x18 (a: CtxtRegs) b :=
mkCtxtRegs (x0 a) (x1 a) (x2 a) (x3 a) (x4 a) (x5 a) (x6 a) (x7 a)
(x8 a) (x9 a) (x10 a) (x11 a) (x12 a) (x13 a) (x14 a) (x15 a)
(x16 a) (x17 a) b (x19 a) (x20 a) (x21 a) (x22 a) (x23 a)
(x24 a) (x25 a) (x26 a) (x27 a) (x28 a) (x29 a) (x30 a) (fp_q0 a)
(fp_q1 a) (fp_q2 a) (fp_q3 a) (fp_q4 a) (fp_q5 a) (fp_q6 a) (fp_q7 a) (fp_q8 a)
(fp_q9 a) (fp_q10 a) (fp_q11 a) (fp_q12 a) (fp_q13 a) (fp_q14 a) (fp_q15 a) (fp_q16 a)
(fp_q17 a) (fp_q18 a) (fp_q19 a) (fp_q20 a) (fp_q21 a) (fp_q22 a) (fp_q23 a) (fp_q24 a)
(fp_q25 a) (fp_q26 a) (fp_q27 a) (fp_q28 a) (fp_q29 a) (fp_q30 a) (fp_q31 a) (fp_fpsr a)
(fp_fpcr a) (csselr_el1 a) (sctlr_el1 a) (cpacr_el1 a) (ttbr0_el1 a) (ttbr1_el1 a) (tcr_el1 a) (afsr0_el1 a)
(afsr1_el1 a) (far_el1 a) (mair_el1 a) (vbar_el1 a) (contextidr_el1 a) (amair_el1 a) (cntkctl_el1 a) (par_el1 a)
(tpidr_el1 a) (spsr_el1 a) (mdscr_el1 a) (sp_el0 a) (tpidr_el0 a) (tpidrro_el0 a) (spsr_el2 a) (vmpidr_el2 a)
(mpidr_el1 a) (actlr_el1 a) (sp_el1 a) (elr_el1 a) (elr_el2 a) (vttbr_el2 a) (hcr_el2 a) (tpidr_el2 a)
(esr_el2 a) (ec a) (far_el2 a) (hpfar_el2 a).
Notation "a {x18 : b }" := (update_x18 a b) (at level 1).
Definition update_x19 (a: CtxtRegs) b :=
mkCtxtRegs (x0 a) (x1 a) (x2 a) (x3 a) (x4 a) (x5 a) (x6 a) (x7 a)
(x8 a) (x9 a) (x10 a) (x11 a) (x12 a) (x13 a) (x14 a) (x15 a)
(x16 a) (x17 a) (x18 a) b (x20 a) (x21 a) (x22 a) (x23 a)
(x24 a) (x25 a) (x26 a) (x27 a) (x28 a) (x29 a) (x30 a) (fp_q0 a)
(fp_q1 a) (fp_q2 a) (fp_q3 a) (fp_q4 a) (fp_q5 a) (fp_q6 a) (fp_q7 a) (fp_q8 a)
(fp_q9 a) (fp_q10 a) (fp_q11 a) (fp_q12 a) (fp_q13 a) (fp_q14 a) (fp_q15 a) (fp_q16 a)
(fp_q17 a) (fp_q18 a) (fp_q19 a) (fp_q20 a) (fp_q21 a) (fp_q22 a) (fp_q23 a) (fp_q24 a)
(fp_q25 a) (fp_q26 a) (fp_q27 a) (fp_q28 a) (fp_q29 a) (fp_q30 a) (fp_q31 a) (fp_fpsr a)
(fp_fpcr a) (csselr_el1 a) (sctlr_el1 a) (cpacr_el1 a) (ttbr0_el1 a) (ttbr1_el1 a) (tcr_el1 a) (afsr0_el1 a)
(afsr1_el1 a) (far_el1 a) (mair_el1 a) (vbar_el1 a) (contextidr_el1 a) (amair_el1 a) (cntkctl_el1 a) (par_el1 a)
(tpidr_el1 a) (spsr_el1 a) (mdscr_el1 a) (sp_el0 a) (tpidr_el0 a) (tpidrro_el0 a) (spsr_el2 a) (vmpidr_el2 a)
(mpidr_el1 a) (actlr_el1 a) (sp_el1 a) (elr_el1 a) (elr_el2 a) (vttbr_el2 a) (hcr_el2 a) (tpidr_el2 a)
(esr_el2 a) (ec a) (far_el2 a) (hpfar_el2 a).
Notation "a {x19 : b }" := (update_x19 a b) (at level 1).
Definition update_x20 (a: CtxtRegs) b :=
mkCtxtRegs (x0 a) (x1 a) (x2 a) (x3 a) (x4 a) (x5 a) (x6 a) (x7 a)
(x8 a) (x9 a) (x10 a) (x11 a) (x12 a) (x13 a) (x14 a) (x15 a)
(x16 a) (x17 a) (x18 a) (x19 a) b (x21 a) (x22 a) (x23 a)
(x24 a) (x25 a) (x26 a) (x27 a) (x28 a) (x29 a) (x30 a) (fp_q0 a)
(fp_q1 a) (fp_q2 a) (fp_q3 a) (fp_q4 a) (fp_q5 a) (fp_q6 a) (fp_q7 a) (fp_q8 a)
(fp_q9 a) (fp_q10 a) (fp_q11 a) (fp_q12 a) (fp_q13 a) (fp_q14 a) (fp_q15 a) (fp_q16 a)
(fp_q17 a) (fp_q18 a) (fp_q19 a) (fp_q20 a) (fp_q21 a) (fp_q22 a) (fp_q23 a) (fp_q24 a)
(fp_q25 a) (fp_q26 a) (fp_q27 a) (fp_q28 a) (fp_q29 a) (fp_q30 a) (fp_q31 a) (fp_fpsr a)
(fp_fpcr a) (csselr_el1 a) (sctlr_el1 a) (cpacr_el1 a) (ttbr0_el1 a) (ttbr1_el1 a) (tcr_el1 a) (afsr0_el1 a)
(afsr1_el1 a) (far_el1 a) (mair_el1 a) (vbar_el1 a) (contextidr_el1 a) (amair_el1 a) (cntkctl_el1 a) (par_el1 a)
(tpidr_el1 a) (spsr_el1 a) (mdscr_el1 a) (sp_el0 a) (tpidr_el0 a) (tpidrro_el0 a) (spsr_el2 a) (vmpidr_el2 a)
(mpidr_el1 a) (actlr_el1 a) (sp_el1 a) (elr_el1 a) (elr_el2 a) (vttbr_el2 a) (hcr_el2 a) (tpidr_el2 a)
(esr_el2 a) (ec a) (far_el2 a) (hpfar_el2 a).
Notation "a {x20 : b }" := (update_x20 a b) (at level 1).
Definition update_x21 (a: CtxtRegs) b :=
mkCtxtRegs (x0 a) (x1 a) (x2 a) (x3 a) (x4 a) (x5 a) (x6 a) (x7 a)
(x8 a) (x9 a) (x10 a) (x11 a) (x12 a) (x13 a) (x14 a) (x15 a)
(x16 a) (x17 a) (x18 a) (x19 a) (x20 a) b (x22 a) (x23 a)
(x24 a) (x25 a) (x26 a) (x27 a) (x28 a) (x29 a) (x30 a) (fp_q0 a)
(fp_q1 a) (fp_q2 a) (fp_q3 a) (fp_q4 a) (fp_q5 a) (fp_q6 a) (fp_q7 a) (fp_q8 a)
(fp_q9 a) (fp_q10 a) (fp_q11 a) (fp_q12 a) (fp_q13 a) (fp_q14 a) (fp_q15 a) (fp_q16 a)
(fp_q17 a) (fp_q18 a) (fp_q19 a) (fp_q20 a) (fp_q21 a) (fp_q22 a) (fp_q23 a) (fp_q24 a)
(fp_q25 a) (fp_q26 a) (fp_q27 a) (fp_q28 a) (fp_q29 a) (fp_q30 a) (fp_q31 a) (fp_fpsr a)
(fp_fpcr a) (csselr_el1 a) (sctlr_el1 a) (cpacr_el1 a) (ttbr0_el1 a) (ttbr1_el1 a) (tcr_el1 a) (afsr0_el1 a)
(afsr1_el1 a) (far_el1 a) (mair_el1 a) (vbar_el1 a) (contextidr_el1 a) (amair_el1 a) (cntkctl_el1 a) (par_el1 a)
(tpidr_el1 a) (spsr_el1 a) (mdscr_el1 a) (sp_el0 a) (tpidr_el0 a) (tpidrro_el0 a) (spsr_el2 a) (vmpidr_el2 a)
(mpidr_el1 a) (actlr_el1 a) (sp_el1 a) (elr_el1 a) (elr_el2 a) (vttbr_el2 a) (hcr_el2 a) (tpidr_el2 a)
(esr_el2 a) (ec a) (far_el2 a) (hpfar_el2 a).
Notation "a {x21 : b }" := (update_x21 a b) (at level 1).
Definition update_x22 (a: CtxtRegs) b :=
mkCtxtRegs (x0 a) (x1 a) (x2 a) (x3 a) (x4 a) (x5 a) (x6 a) (x7 a)
(x8 a) (x9 a) (x10 a) (x11 a) (x12 a) (x13 a) (x14 a) (x15 a)
(x16 a) (x17 a) (x18 a) (x19 a) (x20 a) (x21 a) b (x23 a)
(x24 a) (x25 a) (x26 a) (x27 a) (x28 a) (x29 a) (x30 a) (fp_q0 a)
(fp_q1 a) (fp_q2 a) (fp_q3 a) (fp_q4 a) (fp_q5 a) (fp_q6 a) (fp_q7 a) (fp_q8 a)
(fp_q9 a) (fp_q10 a) (fp_q11 a) (fp_q12 a) (fp_q13 a) (fp_q14 a) (fp_q15 a) (fp_q16 a)
(fp_q17 a) (fp_q18 a) (fp_q19 a) (fp_q20 a) (fp_q21 a) (fp_q22 a) (fp_q23 a) (fp_q24 a)
(fp_q25 a) (fp_q26 a) (fp_q27 a) (fp_q28 a) (fp_q29 a) (fp_q30 a) (fp_q31 a) (fp_fpsr a)
(fp_fpcr a) (csselr_el1 a) (sctlr_el1 a) (cpacr_el1 a) (ttbr0_el1 a) (ttbr1_el1 a) (tcr_el1 a) (afsr0_el1 a)
(afsr1_el1 a) (far_el1 a) (mair_el1 a) (vbar_el1 a) (contextidr_el1 a) (amair_el1 a) (cntkctl_el1 a) (par_el1 a)
(tpidr_el1 a) (spsr_el1 a) (mdscr_el1 a) (sp_el0 a) (tpidr_el0 a) (tpidrro_el0 a) (spsr_el2 a) (vmpidr_el2 a)
(mpidr_el1 a) (actlr_el1 a) (sp_el1 a) (elr_el1 a) (elr_el2 a) (vttbr_el2 a) (hcr_el2 a) (tpidr_el2 a)
(esr_el2 a) (ec a) (far_el2 a) (hpfar_el2 a).
Notation "a {x22 : b }" := (update_x22 a b) (at level 1).
Definition update_x23 (a: CtxtRegs) b :=
mkCtxtRegs (x0 a) (x1 a) (x2 a) (x3 a) (x4 a) (x5 a) (x6 a) (x7 a)
(x8 a) (x9 a) (x10 a) (x11 a) (x12 a) (x13 a) (x14 a) (x15 a)
(x16 a) (x17 a) (x18 a) (x19 a) (x20 a) (x21 a) (x22 a) b
(x24 a) (x25 a) (x26 a) (x27 a) (x28 a) (x29 a) (x30 a) (fp_q0 a)
(fp_q1 a) (fp_q2 a) (fp_q3 a) (fp_q4 a) (fp_q5 a) (fp_q6 a) (fp_q7 a) (fp_q8 a)
(fp_q9 a) (fp_q10 a) (fp_q11 a) (fp_q12 a) (fp_q13 a) (fp_q14 a) (fp_q15 a) (fp_q16 a)
(fp_q17 a) (fp_q18 a) (fp_q19 a) (fp_q20 a) (fp_q21 a) (fp_q22 a) (fp_q23 a) (fp_q24 a)
(fp_q25 a) (fp_q26 a) (fp_q27 a) (fp_q28 a) (fp_q29 a) (fp_q30 a) (fp_q31 a) (fp_fpsr a)
(fp_fpcr a) (csselr_el1 a) (sctlr_el1 a) (cpacr_el1 a) (ttbr0_el1 a) (ttbr1_el1 a) (tcr_el1 a) (afsr0_el1 a)
(afsr1_el1 a) (far_el1 a) (mair_el1 a) (vbar_el1 a) (contextidr_el1 a) (amair_el1 a) (cntkctl_el1 a) (par_el1 a)
(tpidr_el1 a) (spsr_el1 a) (mdscr_el1 a) (sp_el0 a) (tpidr_el0 a) (tpidrro_el0 a) (spsr_el2 a) (vmpidr_el2 a)
(mpidr_el1 a) (actlr_el1 a) (sp_el1 a) (elr_el1 a) (elr_el2 a) (vttbr_el2 a) (hcr_el2 a) (tpidr_el2 a)
(esr_el2 a) (ec a) (far_el2 a) (hpfar_el2 a).
Notation "a {x23 : b }" := (update_x23 a b) (at level 1).
Definition update_x24 (a: CtxtRegs) b :=
mkCtxtRegs (x0 a) (x1 a) (x2 a) (x3 a) (x4 a) (x5 a) (x6 a) (x7 a)
(x8 a) (x9 a) (x10 a) (x11 a) (x12 a) (x13 a) (x14 a) (x15 a)
(x16 a) (x17 a) (x18 a) (x19 a) (x20 a) (x21 a) (x22 a) (x23 a)
b (x25 a) (x26 a) (x27 a) (x28 a) (x29 a) (x30 a) (fp_q0 a)
(fp_q1 a) (fp_q2 a) (fp_q3 a) (fp_q4 a) (fp_q5 a) (fp_q6 a) (fp_q7 a) (fp_q8 a)
(fp_q9 a) (fp_q10 a) (fp_q11 a) (fp_q12 a) (fp_q13 a) (fp_q14 a) (fp_q15 a) (fp_q16 a)
(fp_q17 a) (fp_q18 a) (fp_q19 a) (fp_q20 a) (fp_q21 a) (fp_q22 a) (fp_q23 a) (fp_q24 a)
(fp_q25 a) (fp_q26 a) (fp_q27 a) (fp_q28 a) (fp_q29 a) (fp_q30 a) (fp_q31 a) (fp_fpsr a)
(fp_fpcr a) (csselr_el1 a) (sctlr_el1 a) (cpacr_el1 a) (ttbr0_el1 a) (ttbr1_el1 a) (tcr_el1 a) (afsr0_el1 a)
(afsr1_el1 a) (far_el1 a) (mair_el1 a) (vbar_el1 a) (contextidr_el1 a) (amair_el1 a) (cntkctl_el1 a) (par_el1 a)
(tpidr_el1 a) (spsr_el1 a) (mdscr_el1 a) (sp_el0 a) (tpidr_el0 a) (tpidrro_el0 a) (spsr_el2 a) (vmpidr_el2 a)
(mpidr_el1 a) (actlr_el1 a) (sp_el1 a) (elr_el1 a) (elr_el2 a) (vttbr_el2 a) (hcr_el2 a) (tpidr_el2 a)
(esr_el2 a) (ec a) (far_el2 a) (hpfar_el2 a).
Notation "a {x24 : b }" := (update_x24 a b) (at level 1).
Definition update_x25 (a: CtxtRegs) b :=
mkCtxtRegs (x0 a) (x1 a) (x2 a) (x3 a) (x4 a) (x5 a) (x6 a) (x7 a)
(x8 a) (x9 a) (x10 a) (x11 a) (x12 a) (x13 a) (x14 a) (x15 a)
(x16 a) (x17 a) (x18 a) (x19 a) (x20 a) (x21 a) (x22 a) (x23 a)
(x24 a) b (x26 a) (x27 a) (x28 a) (x29 a) (x30 a) (fp_q0 a)
(fp_q1 a) (fp_q2 a) (fp_q3 a) (fp_q4 a) (fp_q5 a) (fp_q6 a) (fp_q7 a) (fp_q8 a)
(fp_q9 a) (fp_q10 a) (fp_q11 a) (fp_q12 a) (fp_q13 a) (fp_q14 a) (fp_q15 a) (fp_q16 a)
(fp_q17 a) (fp_q18 a) (fp_q19 a) (fp_q20 a) (fp_q21 a) (fp_q22 a) (fp_q23 a) (fp_q24 a)
(fp_q25 a) (fp_q26 a) (fp_q27 a) (fp_q28 a) (fp_q29 a) (fp_q30 a) (fp_q31 a) (fp_fpsr a)
(fp_fpcr a) (csselr_el1 a) (sctlr_el1 a) (cpacr_el1 a) (ttbr0_el1 a) (ttbr1_el1 a) (tcr_el1 a) (afsr0_el1 a)
(afsr1_el1 a) (far_el1 a) (mair_el1 a) (vbar_el1 a) (contextidr_el1 a) (amair_el1 a) (cntkctl_el1 a) (par_el1 a)
(tpidr_el1 a) (spsr_el1 a) (mdscr_el1 a) (sp_el0 a) (tpidr_el0 a) (tpidrro_el0 a) (spsr_el2 a) (vmpidr_el2 a)
(mpidr_el1 a) (actlr_el1 a) (sp_el1 a) (elr_el1 a) (elr_el2 a) (vttbr_el2 a) (hcr_el2 a) (tpidr_el2 a)
(esr_el2 a) (ec a) (far_el2 a) (hpfar_el2 a).
Notation "a {x25 : b }" := (update_x25 a b) (at level 1).
Definition update_x26 (a: CtxtRegs) b :=
mkCtxtRegs (x0 a) (x1 a) (x2 a) (x3 a) (x4 a) (x5 a) (x6 a) (x7 a)
(x8 a) (x9 a) (x10 a) (x11 a) (x12 a) (x13 a) (x14 a) (x15 a)
(x16 a) (x17 a) (x18 a) (x19 a) (x20 a) (x21 a) (x22 a) (x23 a)
(x24 a) (x25 a) b (x27 a) (x28 a) (x29 a) (x30 a) (fp_q0 a)
(fp_q1 a) (fp_q2 a) (fp_q3 a) (fp_q4 a) (fp_q5 a) (fp_q6 a) (fp_q7 a) (fp_q8 a)
(fp_q9 a) (fp_q10 a) (fp_q11 a) (fp_q12 a) (fp_q13 a) (fp_q14 a) (fp_q15 a) (fp_q16 a)
(fp_q17 a) (fp_q18 a) (fp_q19 a) (fp_q20 a) (fp_q21 a) (fp_q22 a) (fp_q23 a) (fp_q24 a)
(fp_q25 a) (fp_q26 a) (fp_q27 a) (fp_q28 a) (fp_q29 a) (fp_q30 a) (fp_q31 a) (fp_fpsr a)
(fp_fpcr a) (csselr_el1 a) (sctlr_el1 a) (cpacr_el1 a) (ttbr0_el1 a) (ttbr1_el1 a) (tcr_el1 a) (afsr0_el1 a)
(afsr1_el1 a) (far_el1 a) (mair_el1 a) (vbar_el1 a) (contextidr_el1 a) (amair_el1 a) (cntkctl_el1 a) (par_el1 a)
(tpidr_el1 a) (spsr_el1 a) (mdscr_el1 a) (sp_el0 a) (tpidr_el0 a) (tpidrro_el0 a) (spsr_el2 a) (vmpidr_el2 a)
(mpidr_el1 a) (actlr_el1 a) (sp_el1 a) (elr_el1 a) (elr_el2 a) (vttbr_el2 a) (hcr_el2 a) (tpidr_el2 a)
(esr_el2 a) (ec a) (far_el2 a) (hpfar_el2 a).
Notation "a {x26 : b }" := (update_x26 a b) (at level 1).
Definition update_x27 (a: CtxtRegs) b :=
mkCtxtRegs (x0 a) (x1 a) (x2 a) (x3 a) (x4 a) (x5 a) (x6 a) (x7 a)
(x8 a) (x9 a) (x10 a) (x11 a) (x12 a) (x13 a) (x14 a) (x15 a)
(x16 a) (x17 a) (x18 a) (x19 a) (x20 a) (x21 a) (x22 a) (x23 a)
(x24 a) (x25 a) (x26 a) b (x28 a) (x29 a) (x30 a) (fp_q0 a)
(fp_q1 a) (fp_q2 a) (fp_q3 a) (fp_q4 a) (fp_q5 a) (fp_q6 a) (fp_q7 a) (fp_q8 a)
(fp_q9 a) (fp_q10 a) (fp_q11 a) (fp_q12 a) (fp_q13 a) (fp_q14 a) (fp_q15 a) (fp_q16 a)
(fp_q17 a) (fp_q18 a) (fp_q19 a) (fp_q20 a) (fp_q21 a) (fp_q22 a) (fp_q23 a) (fp_q24 a)
(fp_q25 a) (fp_q26 a) (fp_q27 a) (fp_q28 a) (fp_q29 a) (fp_q30 a) (fp_q31 a) (fp_fpsr a)
(fp_fpcr a) (csselr_el1 a) (sctlr_el1 a) (cpacr_el1 a) (ttbr0_el1 a) (ttbr1_el1 a) (tcr_el1 a) (afsr0_el1 a)
(afsr1_el1 a) (far_el1 a) (mair_el1 a) (vbar_el1 a) (contextidr_el1 a) (amair_el1 a) (cntkctl_el1 a) (par_el1 a)
(tpidr_el1 a) (spsr_el1 a) (mdscr_el1 a) (sp_el0 a) (tpidr_el0 a) (tpidrro_el0 a) (spsr_el2 a) (vmpidr_el2 a)
(mpidr_el1 a) (actlr_el1 a) (sp_el1 a) (elr_el1 a) (elr_el2 a) (vttbr_el2 a) (hcr_el2 a) (tpidr_el2 a)
(esr_el2 a) (ec a) (far_el2 a) (hpfar_el2 a).
Notation "a {x27 : b }" := (update_x27 a b) (at level 1).
Definition update_x28 (a: CtxtRegs) b :=
mkCtxtRegs (x0 a) (x1 a) (x2 a) (x3 a) (x4 a) (x5 a) (x6 a) (x7 a)
(x8 a) (x9 a) (x10 a) (x11 a) (x12 a) (x13 a) (x14 a) (x15 a)
(x16 a) (x17 a) (x18 a) (x19 a) (x20 a) (x21 a) (x22 a) (x23 a)
(x24 a) (x25 a) (x26 a) (x27 a) b (x29 a) (x30 a) (fp_q0 a)
(fp_q1 a) (fp_q2 a) (fp_q3 a) (fp_q4 a) (fp_q5 a) (fp_q6 a) (fp_q7 a) (fp_q8 a)
(fp_q9 a) (fp_q10 a) (fp_q11 a) (fp_q12 a) (fp_q13 a) (fp_q14 a) (fp_q15 a) (fp_q16 a)
(fp_q17 a) (fp_q18 a) (fp_q19 a) (fp_q20 a) (fp_q21 a) (fp_q22 a) (fp_q23 a) (fp_q24 a)
(fp_q25 a) (fp_q26 a) (fp_q27 a) (fp_q28 a) (fp_q29 a) (fp_q30 a) (fp_q31 a) (fp_fpsr a)
(fp_fpcr a) (csselr_el1 a) (sctlr_el1 a) (cpacr_el1 a) (ttbr0_el1 a) (ttbr1_el1 a) (tcr_el1 a) (afsr0_el1 a)
(afsr1_el1 a) (far_el1 a) (mair_el1 a) (vbar_el1 a) (contextidr_el1 a) (amair_el1 a) (cntkctl_el1 a) (par_el1 a)
(tpidr_el1 a) (spsr_el1 a) (mdscr_el1 a) (sp_el0 a) (tpidr_el0 a) (tpidrro_el0 a) (spsr_el2 a) (vmpidr_el2 a)
(mpidr_el1 a) (actlr_el1 a) (sp_el1 a) (elr_el1 a) (elr_el2 a) (vttbr_el2 a) (hcr_el2 a) (tpidr_el2 a)
(esr_el2 a) (ec a) (far_el2 a) (hpfar_el2 a).
Notation "a {x28 : b }" := (update_x28 a b) (at level 1).
Definition update_x29 (a: CtxtRegs) b :=
mkCtxtRegs (x0 a) (x1 a) (x2 a) (x3 a) (x4 a) (x5 a) (x6 a) (x7 a)
(x8 a) (x9 a) (x10 a) (x11 a) (x12 a) (x13 a) (x14 a) (x15 a)
(x16 a) (x17 a) (x18 a) (x19 a) (x20 a) (x21 a) (x22 a) (x23 a)
(x24 a) (x25 a) (x26 a) (x27 a) (x28 a) b (x30 a) (fp_q0 a)
(fp_q1 a) (fp_q2 a) (fp_q3 a) (fp_q4 a) (fp_q5 a) (fp_q6 a) (fp_q7 a) (fp_q8 a)
(fp_q9 a) (fp_q10 a) (fp_q11 a) (fp_q12 a) (fp_q13 a) (fp_q14 a) (fp_q15 a) (fp_q16 a)
(fp_q17 a) (fp_q18 a) (fp_q19 a) (fp_q20 a) (fp_q21 a) (fp_q22 a) (fp_q23 a) (fp_q24 a)
(fp_q25 a) (fp_q26 a) (fp_q27 a) (fp_q28 a) (fp_q29 a) (fp_q30 a) (fp_q31 a) (fp_fpsr a)
(fp_fpcr a) (csselr_el1 a) (sctlr_el1 a) (cpacr_el1 a) (ttbr0_el1 a) (ttbr1_el1 a) (tcr_el1 a) (afsr0_el1 a)
(afsr1_el1 a) (far_el1 a) (mair_el1 a) (vbar_el1 a) (contextidr_el1 a) (amair_el1 a) (cntkctl_el1 a) (par_el1 a)
(tpidr_el1 a) (spsr_el1 a) (mdscr_el1 a) (sp_el0 a) (tpidr_el0 a) (tpidrro_el0 a) (spsr_el2 a) (vmpidr_el2 a)
(mpidr_el1 a) (actlr_el1 a) (sp_el1 a) (elr_el1 a) (elr_el2 a) (vttbr_el2 a) (hcr_el2 a) (tpidr_el2 a)
(esr_el2 a) (ec a) (far_el2 a) (hpfar_el2 a).
Notation "a {x29 : b }" := (update_x29 a b) (at level 1).
Definition update_x30 (a: CtxtRegs) b :=
mkCtxtRegs (x0 a) (x1 a) (x2 a) (x3 a) (x4 a) (x5 a) (x6 a) (x7 a)
(x8 a) (x9 a) (x10 a) (x11 a) (x12 a) (x13 a) (x14 a) (x15 a)
(x16 a) (x17 a) (x18 a) (x19 a) (x20 a) (x21 a) (x22 a) (x23 a)
(x24 a) (x25 a) (x26 a) (x27 a) (x28 a) (x29 a) b (fp_q0 a)
(fp_q1 a) (fp_q2 a) (fp_q3 a) (fp_q4 a) (fp_q5 a) (fp_q6 a) (fp_q7 a) (fp_q8 a)
(fp_q9 a) (fp_q10 a) (fp_q11 a) (fp_q12 a) (fp_q13 a) (fp_q14 a) (fp_q15 a) (fp_q16 a)
(fp_q17 a) (fp_q18 a) (fp_q19 a) (fp_q20 a) (fp_q21 a) (fp_q22 a) (fp_q23 a) (fp_q24 a)
(fp_q25 a) (fp_q26 a) (fp_q27 a) (fp_q28 a) (fp_q29 a) (fp_q30 a) (fp_q31 a) (fp_fpsr a)
(fp_fpcr a) (csselr_el1 a) (sctlr_el1 a) (cpacr_el1 a) (ttbr0_el1 a) (ttbr1_el1 a) (tcr_el1 a) (afsr0_el1 a)
(afsr1_el1 a) (far_el1 a) (mair_el1 a) (vbar_el1 a) (contextidr_el1 a) (amair_el1 a) (cntkctl_el1 a) (par_el1 a)
(tpidr_el1 a) (spsr_el1 a) (mdscr_el1 a) (sp_el0 a) (tpidr_el0 a) (tpidrro_el0 a) (spsr_el2 a) (vmpidr_el2 a)
(mpidr_el1 a) (actlr_el1 a) (sp_el1 a) (elr_el1 a) (elr_el2 a) (vttbr_el2 a) (hcr_el2 a) (tpidr_el2 a)
(esr_el2 a) (ec a) (far_el2 a) (hpfar_el2 a).
Notation "a {x30 : b }" := (update_x30 a b) (at level 1).
Definition update_fp_q0 (a: CtxtRegs) b :=
mkCtxtRegs (x0 a) (x1 a) (x2 a) (x3 a) (x4 a) (x5 a) (x6 a) (x7 a)
(x8 a) (x9 a) (x10 a) (x11 a) (x12 a) (x13 a) (x14 a) (x15 a)
(x16 a) (x17 a) (x18 a) (x19 a) (x20 a) (x21 a) (x22 a) (x23 a)
(x24 a) (x25 a) (x26 a) (x27 a) (x28 a) (x29 a) (x30 a) b
(fp_q1 a) (fp_q2 a) (fp_q3 a) (fp_q4 a) (fp_q5 a) (fp_q6 a) (fp_q7 a) (fp_q8 a)
(fp_q9 a) (fp_q10 a) (fp_q11 a) (fp_q12 a) (fp_q13 a) (fp_q14 a) (fp_q15 a) (fp_q16 a)
(fp_q17 a) (fp_q18 a) (fp_q19 a) (fp_q20 a) (fp_q21 a) (fp_q22 a) (fp_q23 a) (fp_q24 a)
(fp_q25 a) (fp_q26 a) (fp_q27 a) (fp_q28 a) (fp_q29 a) (fp_q30 a) (fp_q31 a) (fp_fpsr a)
(fp_fpcr a) (csselr_el1 a) (sctlr_el1 a) (cpacr_el1 a) (ttbr0_el1 a) (ttbr1_el1 a) (tcr_el1 a) (afsr0_el1 a)
(afsr1_el1 a) (far_el1 a) (mair_el1 a) (vbar_el1 a) (contextidr_el1 a) (amair_el1 a) (cntkctl_el1 a) (par_el1 a)
(tpidr_el1 a) (spsr_el1 a) (mdscr_el1 a) (sp_el0 a) (tpidr_el0 a) (tpidrro_el0 a) (spsr_el2 a) (vmpidr_el2 a)
(mpidr_el1 a) (actlr_el1 a) (sp_el1 a) (elr_el1 a) (elr_el2 a) (vttbr_el2 a) (hcr_el2 a) (tpidr_el2 a)
(esr_el2 a) (ec a) (far_el2 a) (hpfar_el2 a).
Notation "a {fp_q0 : b }" := (update_fp_q0 a b) (at level 1).
Definition update_fp_q1 (a: CtxtRegs) b :=
mkCtxtRegs (x0 a) (x1 a) (x2 a) (x3 a) (x4 a) (x5 a) (x6 a) (x7 a)
(x8 a) (x9 a) (x10 a) (x11 a) (x12 a) (x13 a) (x14 a) (x15 a)
(x16 a) (x17 a) (x18 a) (x19 a) (x20 a) (x21 a) (x22 a) (x23 a)
(x24 a) (x25 a) (x26 a) (x27 a) (x28 a) (x29 a) (x30 a) (fp_q0 a)
b (fp_q2 a) (fp_q3 a) (fp_q4 a) (fp_q5 a) (fp_q6 a) (fp_q7 a) (fp_q8 a)
(fp_q9 a) (fp_q10 a) (fp_q11 a) (fp_q12 a) (fp_q13 a) (fp_q14 a) (fp_q15 a) (fp_q16 a)
(fp_q17 a) (fp_q18 a) (fp_q19 a) (fp_q20 a) (fp_q21 a) (fp_q22 a) (fp_q23 a) (fp_q24 a)
(fp_q25 a) (fp_q26 a) (fp_q27 a) (fp_q28 a) (fp_q29 a) (fp_q30 a) (fp_q31 a) (fp_fpsr a)
(fp_fpcr a) (csselr_el1 a) (sctlr_el1 a) (cpacr_el1 a) (ttbr0_el1 a) (ttbr1_el1 a) (tcr_el1 a) (afsr0_el1 a)
(afsr1_el1 a) (far_el1 a) (mair_el1 a) (vbar_el1 a) (contextidr_el1 a) (amair_el1 a) (cntkctl_el1 a) (par_el1 a)
(tpidr_el1 a) (spsr_el1 a) (mdscr_el1 a) (sp_el0 a) (tpidr_el0 a) (tpidrro_el0 a) (spsr_el2 a) (vmpidr_el2 a)
(mpidr_el1 a) (actlr_el1 a) (sp_el1 a) (elr_el1 a) (elr_el2 a) (vttbr_el2 a) (hcr_el2 a) (tpidr_el2 a)
(esr_el2 a) (ec a) (far_el2 a) (hpfar_el2 a).
Notation "a {fp_q1 : b }" := (update_fp_q1 a b) (at level 1).
Definition update_fp_q2 (a: CtxtRegs) b :=
mkCtxtRegs (x0 a) (x1 a) (x2 a) (x3 a) (x4 a) (x5 a) (x6 a) (x7 a)
(x8 a) (x9 a) (x10 a) (x11 a) (x12 a) (x13 a) (x14 a) (x15 a)
(x16 a) (x17 a) (x18 a) (x19 a) (x20 a) (x21 a) (x22 a) (x23 a)
(x24 a) (x25 a) (x26 a) (x27 a) (x28 a) (x29 a) (x30 a) (fp_q0 a)
(fp_q1 a) b (fp_q3 a) (fp_q4 a) (fp_q5 a) (fp_q6 a) (fp_q7 a) (fp_q8 a)
(fp_q9 a) (fp_q10 a) (fp_q11 a) (fp_q12 a) (fp_q13 a) (fp_q14 a) (fp_q15 a) (fp_q16 a)
(fp_q17 a) (fp_q18 a) (fp_q19 a) (fp_q20 a) (fp_q21 a) (fp_q22 a) (fp_q23 a) (fp_q24 a)
(fp_q25 a) (fp_q26 a) (fp_q27 a) (fp_q28 a) (fp_q29 a) (fp_q30 a) (fp_q31 a) (fp_fpsr a)
(fp_fpcr a) (csselr_el1 a) (sctlr_el1 a) (cpacr_el1 a) (ttbr0_el1 a) (ttbr1_el1 a) (tcr_el1 a) (afsr0_el1 a)
(afsr1_el1 a) (far_el1 a) (mair_el1 a) (vbar_el1 a) (contextidr_el1 a) (amair_el1 a) (cntkctl_el1 a) (par_el1 a)
(tpidr_el1 a) (spsr_el1 a) (mdscr_el1 a) (sp_el0 a) (tpidr_el0 a) (tpidrro_el0 a) (spsr_el2 a) (vmpidr_el2 a)
(mpidr_el1 a) (actlr_el1 a) (sp_el1 a) (elr_el1 a) (elr_el2 a) (vttbr_el2 a) (hcr_el2 a) (tpidr_el2 a)
(esr_el2 a) (ec a) (far_el2 a) (hpfar_el2 a).
Notation "a {fp_q2 : b }" := (update_fp_q2 a b) (at level 1).
Definition update_fp_q3 (a: CtxtRegs) b :=
mkCtxtRegs (x0 a) (x1 a) (x2 a) (x3 a) (x4 a) (x5 a) (x6 a) (x7 a)
(x8 a) (x9 a) (x10 a) (x11 a) (x12 a) (x13 a) (x14 a) (x15 a)
(x16 a) (x17 a) (x18 a) (x19 a) (x20 a) (x21 a) (x22 a) (x23 a)
(x24 a) (x25 a) (x26 a) (x27 a) (x28 a) (x29 a) (x30 a) (fp_q0 a)
(fp_q1 a) (fp_q2 a) b (fp_q4 a) (fp_q5 a) (fp_q6 a) (fp_q7 a) (fp_q8 a)
(fp_q9 a) (fp_q10 a) (fp_q11 a) (fp_q12 a) (fp_q13 a) (fp_q14 a) (fp_q15 a) (fp_q16 a)
(fp_q17 a) (fp_q18 a) (fp_q19 a) (fp_q20 a) (fp_q21 a) (fp_q22 a) (fp_q23 a) (fp_q24 a)
(fp_q25 a) (fp_q26 a) (fp_q27 a) (fp_q28 a) (fp_q29 a) (fp_q30 a) (fp_q31 a) (fp_fpsr a)
(fp_fpcr a) (csselr_el1 a) (sctlr_el1 a) (cpacr_el1 a) (ttbr0_el1 a) (ttbr1_el1 a) (tcr_el1 a) (afsr0_el1 a)
(afsr1_el1 a) (far_el1 a) (mair_el1 a) (vbar_el1 a) (contextidr_el1 a) (amair_el1 a) (cntkctl_el1 a) (par_el1 a)
(tpidr_el1 a) (spsr_el1 a) (mdscr_el1 a) (sp_el0 a) (tpidr_el0 a) (tpidrro_el0 a) (spsr_el2 a) (vmpidr_el2 a)
(mpidr_el1 a) (actlr_el1 a) (sp_el1 a) (elr_el1 a) (elr_el2 a) (vttbr_el2 a) (hcr_el2 a) (tpidr_el2 a)
(esr_el2 a) (ec a) (far_el2 a) (hpfar_el2 a).
Notation "a {fp_q3 : b }" := (update_fp_q3 a b) (at level 1).
Definition update_fp_q4 (a: CtxtRegs) b :=
mkCtxtRegs (x0 a) (x1 a) (x2 a) (x3 a) (x4 a) (x5 a) (x6 a) (x7 a)
(x8 a) (x9 a) (x10 a) (x11 a) (x12 a) (x13 a) (x14 a) (x15 a)
(x16 a) (x17 a) (x18 a) (x19 a) (x20 a) (x21 a) (x22 a) (x23 a)
(x24 a) (x25 a) (x26 a) (x27 a) (x28 a) (x29 a) (x30 a) (fp_q0 a)
(fp_q1 a) (fp_q2 a) (fp_q3 a) b (fp_q5 a) (fp_q6 a) (fp_q7 a) (fp_q8 a)
(fp_q9 a) (fp_q10 a) (fp_q11 a) (fp_q12 a) (fp_q13 a) (fp_q14 a) (fp_q15 a) (fp_q16 a)
(fp_q17 a) (fp_q18 a) (fp_q19 a) (fp_q20 a) (fp_q21 a) (fp_q22 a) (fp_q23 a) (fp_q24 a)
(fp_q25 a) (fp_q26 a) (fp_q27 a) (fp_q28 a) (fp_q29 a) (fp_q30 a) (fp_q31 a) (fp_fpsr a)
(fp_fpcr a) (csselr_el1 a) (sctlr_el1 a) (cpacr_el1 a) (ttbr0_el1 a) (ttbr1_el1 a) (tcr_el1 a) (afsr0_el1 a)
(afsr1_el1 a) (far_el1 a) (mair_el1 a) (vbar_el1 a) (contextidr_el1 a) (amair_el1 a) (cntkctl_el1 a) (par_el1 a)
(tpidr_el1 a) (spsr_el1 a) (mdscr_el1 a) (sp_el0 a) (tpidr_el0 a) (tpidrro_el0 a) (spsr_el2 a) (vmpidr_el2 a)
(mpidr_el1 a) (actlr_el1 a) (sp_el1 a) (elr_el1 a) (elr_el2 a) (vttbr_el2 a) (hcr_el2 a) (tpidr_el2 a)
(esr_el2 a) (ec a) (far_el2 a) (hpfar_el2 a).
Notation "a {fp_q4 : b }" := (update_fp_q4 a b) (at level 1).
Definition update_fp_q5 (a: CtxtRegs) b :=
mkCtxtRegs (x0 a) (x1 a) (x2 a) (x3 a) (x4 a) (x5 a) (x6 a) (x7 a)
(x8 a) (x9 a) (x10 a) (x11 a) (x12 a) (x13 a) (x14 a) (x15 a)
(x16 a) (x17 a) (x18 a) (x19 a) (x20 a) (x21 a) (x22 a) (x23 a)
(x24 a) (x25 a) (x26 a) (x27 a) (x28 a) (x29 a) (x30 a) (fp_q0 a)
(fp_q1 a) (fp_q2 a) (fp_q3 a) (fp_q4 a) b (fp_q6 a) (fp_q7 a) (fp_q8 a)
(fp_q9 a) (fp_q10 a) (fp_q11 a) (fp_q12 a) (fp_q13 a) (fp_q14 a) (fp_q15 a) (fp_q16 a)
(fp_q17 a) (fp_q18 a) (fp_q19 a) (fp_q20 a) (fp_q21 a) (fp_q22 a) (fp_q23 a) (fp_q24 a)
(fp_q25 a) (fp_q26 a) (fp_q27 a) (fp_q28 a) (fp_q29 a) (fp_q30 a) (fp_q31 a) (fp_fpsr a)
(fp_fpcr a) (csselr_el1 a) (sctlr_el1 a) (cpacr_el1 a) (ttbr0_el1 a) (ttbr1_el1 a) (tcr_el1 a) (afsr0_el1 a)
(afsr1_el1 a) (far_el1 a) (mair_el1 a) (vbar_el1 a) (contextidr_el1 a) (amair_el1 a) (cntkctl_el1 a) (par_el1 a)
(tpidr_el1 a) (spsr_el1 a) (mdscr_el1 a) (sp_el0 a) (tpidr_el0 a) (tpidrro_el0 a) (spsr_el2 a) (vmpidr_el2 a)
(mpidr_el1 a) (actlr_el1 a) (sp_el1 a) (elr_el1 a) (elr_el2 a) (vttbr_el2 a) (hcr_el2 a) (tpidr_el2 a)
(esr_el2 a) (ec a) (far_el2 a) (hpfar_el2 a).
Notation "a {fp_q5 : b }" := (update_fp_q5 a b) (at level 1).
Definition update_fp_q6 (a: CtxtRegs) b :=
mkCtxtRegs (x0 a) (x1 a) (x2 a) (x3 a) (x4 a) (x5 a) (x6 a) (x7 a)
(x8 a) (x9 a) (x10 a) (x11 a) (x12 a) (x13 a) (x14 a) (x15 a)
(x16 a) (x17 a) (x18 a) (x19 a) (x20 a) (x21 a) (x22 a) (x23 a)
(x24 a) (x25 a) (x26 a) (x27 a) (x28 a) (x29 a) (x30 a) (fp_q0 a)
(fp_q1 a) (fp_q2 a) (fp_q3 a) (fp_q4 a) (fp_q5 a) b (fp_q7 a) (fp_q8 a)
(fp_q9 a) (fp_q10 a) (fp_q11 a) (fp_q12 a) (fp_q13 a) (fp_q14 a) (fp_q15 a) (fp_q16 a)
(fp_q17 a) (fp_q18 a) (fp_q19 a) (fp_q20 a) (fp_q21 a) (fp_q22 a) (fp_q23 a) (fp_q24 a)
(fp_q25 a) (fp_q26 a) (fp_q27 a) (fp_q28 a) (fp_q29 a) (fp_q30 a) (fp_q31 a) (fp_fpsr a)
(fp_fpcr a) (csselr_el1 a) (sctlr_el1 a) (cpacr_el1 a) (ttbr0_el1 a) (ttbr1_el1 a) (tcr_el1 a) (afsr0_el1 a)
(afsr1_el1 a) (far_el1 a) (mair_el1 a) (vbar_el1 a) (contextidr_el1 a) (amair_el1 a) (cntkctl_el1 a) (par_el1 a)
(tpidr_el1 a) (spsr_el1 a) (mdscr_el1 a) (sp_el0 a) (tpidr_el0 a) (tpidrro_el0 a) (spsr_el2 a) (vmpidr_el2 a)
(mpidr_el1 a) (actlr_el1 a) (sp_el1 a) (elr_el1 a) (elr_el2 a) (vttbr_el2 a) (hcr_el2 a) (tpidr_el2 a)
(esr_el2 a) (ec a) (far_el2 a) (hpfar_el2 a).
Notation "a {fp_q6 : b }" := (update_fp_q6 a b) (at level 1).
Definition update_fp_q7 (a: CtxtRegs) b :=
mkCtxtRegs (x0 a) (x1 a) (x2 a) (x3 a) (x4 a) (x5 a) (x6 a) (x7 a)
(x8 a) (x9 a) (x10 a) (x11 a) (x12 a) (x13 a) (x14 a) (x15 a)
(x16 a) (x17 a) (x18 a) (x19 a) (x20 a) (x21 a) (x22 a) (x23 a)
(x24 a) (x25 a) (x26 a) (x27 a) (x28 a) (x29 a) (x30 a) (fp_q0 a)
(fp_q1 a) (fp_q2 a) (fp_q3 a) (fp_q4 a) (fp_q5 a) (fp_q6 a) b (fp_q8 a)
(fp_q9 a) (fp_q10 a) (fp_q11 a) (fp_q12 a) (fp_q13 a) (fp_q14 a) (fp_q15 a) (fp_q16 a)
(fp_q17 a) (fp_q18 a) (fp_q19 a) (fp_q20 a) (fp_q21 a) (fp_q22 a) (fp_q23 a) (fp_q24 a)
(fp_q25 a) (fp_q26 a) (fp_q27 a) (fp_q28 a) (fp_q29 a) (fp_q30 a) (fp_q31 a) (fp_fpsr a)
(fp_fpcr a) (csselr_el1 a) (sctlr_el1 a) (cpacr_el1 a) (ttbr0_el1 a) (ttbr1_el1 a) (tcr_el1 a) (afsr0_el1 a)
(afsr1_el1 a) (far_el1 a) (mair_el1 a) (vbar_el1 a) (contextidr_el1 a) (amair_el1 a) (cntkctl_el1 a) (par_el1 a)
(tpidr_el1 a) (spsr_el1 a) (mdscr_el1 a) (sp_el0 a) (tpidr_el0 a) (tpidrro_el0 a) (spsr_el2 a) (vmpidr_el2 a)
(mpidr_el1 a) (actlr_el1 a) (sp_el1 a) (elr_el1 a) (elr_el2 a) (vttbr_el2 a) (hcr_el2 a) (tpidr_el2 a)
(esr_el2 a) (ec a) (far_el2 a) (hpfar_el2 a).
Notation "a {fp_q7 : b }" := (update_fp_q7 a b) (at level 1).
Definition update_fp_q8 (a: CtxtRegs) b :=
mkCtxtRegs (x0 a) (x1 a) (x2 a) (x3 a) (x4 a) (x5 a) (x6 a) (x7 a)
(x8 a) (x9 a) (x10 a) (x11 a) (x12 a) (x13 a) (x14 a) (x15 a)
(x16 a) (x17 a) (x18 a) (x19 a) (x20 a) (x21 a) (x22 a) (x23 a)
(x24 a) (x25 a) (x26 a) (x27 a) (x28 a) (x29 a) (x30 a) (fp_q0 a)
(fp_q1 a) (fp_q2 a) (fp_q3 a) (fp_q4 a) (fp_q5 a) (fp_q6 a) (fp_q7 a) b
(fp_q9 a) (fp_q10 a) (fp_q11 a) (fp_q12 a) (fp_q13 a) (fp_q14 a) (fp_q15 a) (fp_q16 a)
(fp_q17 a) (fp_q18 a) (fp_q19 a) (fp_q20 a) (fp_q21 a) (fp_q22 a) (fp_q23 a) (fp_q24 a)
(fp_q25 a) (fp_q26 a) (fp_q27 a) (fp_q28 a) (fp_q29 a) (fp_q30 a) (fp_q31 a) (fp_fpsr a)
(fp_fpcr a) (csselr_el1 a) (sctlr_el1 a) (cpacr_el1 a) (ttbr0_el1 a) (ttbr1_el1 a) (tcr_el1 a) (afsr0_el1 a)
(afsr1_el1 a) (far_el1 a) (mair_el1 a) (vbar_el1 a) (contextidr_el1 a) (amair_el1 a) (cntkctl_el1 a) (par_el1 a)
(tpidr_el1 a) (spsr_el1 a) (mdscr_el1 a) (sp_el0 a) (tpidr_el0 a) (tpidrro_el0 a) (spsr_el2 a) (vmpidr_el2 a)
(mpidr_el1 a) (actlr_el1 a) (sp_el1 a) (elr_el1 a) (elr_el2 a) (vttbr_el2 a) (hcr_el2 a) (tpidr_el2 a)
(esr_el2 a) (ec a) (far_el2 a) (hpfar_el2 a).
Notation "a {fp_q8 : b }" := (update_fp_q8 a b) (at level 1).
Definition update_fp_q9 (a: CtxtRegs) b :=
mkCtxtRegs (x0 a) (x1 a) (x2 a) (x3 a) (x4 a) (x5 a) (x6 a) (x7 a)
(x8 a) (x9 a) (x10 a) (x11 a) (x12 a) (x13 a) (x14 a) (x15 a)
(x16 a) (x17 a) (x18 a) (x19 a) (x20 a) (x21 a) (x22 a) (x23 a)
(x24 a) (x25 a) (x26 a) (x27 a) (x28 a) (x29 a) (x30 a) (fp_q0 a)
(fp_q1 a) (fp_q2 a) (fp_q3 a) (fp_q4 a) (fp_q5 a) (fp_q6 a) (fp_q7 a) (fp_q8 a)
b (fp_q10 a) (fp_q11 a) (fp_q12 a) (fp_q13 a) (fp_q14 a) (fp_q15 a) (fp_q16 a)
(fp_q17 a) (fp_q18 a) (fp_q19 a) (fp_q20 a) (fp_q21 a) (fp_q22 a) (fp_q23 a) (fp_q24 a)
(fp_q25 a) (fp_q26 a) (fp_q27 a) (fp_q28 a) (fp_q29 a) (fp_q30 a) (fp_q31 a) (fp_fpsr a)
(fp_fpcr a) (csselr_el1 a) (sctlr_el1 a) (cpacr_el1 a) (ttbr0_el1 a) (ttbr1_el1 a) (tcr_el1 a) (afsr0_el1 a)
(afsr1_el1 a) (far_el1 a) (mair_el1 a) (vbar_el1 a) (contextidr_el1 a) (amair_el1 a) (cntkctl_el1 a) (par_el1 a)
(tpidr_el1 a) (spsr_el1 a) (mdscr_el1 a) (sp_el0 a) (tpidr_el0 a) (tpidrro_el0 a) (spsr_el2 a) (vmpidr_el2 a)
(mpidr_el1 a) (actlr_el1 a) (sp_el1 a) (elr_el1 a) (elr_el2 a) (vttbr_el2 a) (hcr_el2 a) (tpidr_el2 a)
(esr_el2 a) (ec a) (far_el2 a) (hpfar_el2 a).
Notation "a {fp_q9 : b }" := (update_fp_q9 a b) (at level 1).
Definition update_fp_q10 (a: CtxtRegs) b :=
mkCtxtRegs (x0 a) (x1 a) (x2 a) (x3 a) (x4 a) (x5 a) (x6 a) (x7 a)
(x8 a) (x9 a) (x10 a) (x11 a) (x12 a) (x13 a) (x14 a) (x15 a)
(x16 a) (x17 a) (x18 a) (x19 a) (x20 a) (x21 a) (x22 a) (x23 a)
(x24 a) (x25 a) (x26 a) (x27 a) (x28 a) (x29 a) (x30 a) (fp_q0 a)
(fp_q1 a) (fp_q2 a) (fp_q3 a) (fp_q4 a) (fp_q5 a) (fp_q6 a) (fp_q7 a) (fp_q8 a)
(fp_q9 a) b (fp_q11 a) (fp_q12 a) (fp_q13 a) (fp_q14 a) (fp_q15 a) (fp_q16 a)
(fp_q17 a) (fp_q18 a) (fp_q19 a) (fp_q20 a) (fp_q21 a) (fp_q22 a) (fp_q23 a) (fp_q24 a)
(fp_q25 a) (fp_q26 a) (fp_q27 a) (fp_q28 a) (fp_q29 a) (fp_q30 a) (fp_q31 a) (fp_fpsr a)
(fp_fpcr a) (csselr_el1 a) (sctlr_el1 a) (cpacr_el1 a) (ttbr0_el1 a) (ttbr1_el1 a) (tcr_el1 a) (afsr0_el1 a)
(afsr1_el1 a) (far_el1 a) (mair_el1 a) (vbar_el1 a) (contextidr_el1 a) (amair_el1 a) (cntkctl_el1 a) (par_el1 a)
(tpidr_el1 a) (spsr_el1 a) (mdscr_el1 a) (sp_el0 a) (tpidr_el0 a) (tpidrro_el0 a) (spsr_el2 a) (vmpidr_el2 a)
(mpidr_el1 a) (actlr_el1 a) (sp_el1 a) (elr_el1 a) (elr_el2 a) (vttbr_el2 a) (hcr_el2 a) (tpidr_el2 a)
(esr_el2 a) (ec a) (far_el2 a) (hpfar_el2 a).
Notation "a {fp_q10 : b }" := (update_fp_q10 a b) (at level 1).
Definition update_fp_q11 (a: CtxtRegs) b :=
mkCtxtRegs (x0 a) (x1 a) (x2 a) (x3 a) (x4 a) (x5 a) (x6 a) (x7 a)
(x8 a) (x9 a) (x10 a) (x11 a) (x12 a) (x13 a) (x14 a) (x15 a)
(x16 a) (x17 a) (x18 a) (x19 a) (x20 a) (x21 a) (x22 a) (x23 a)
(x24 a) (x25 a) (x26 a) (x27 a) (x28 a) (x29 a) (x30 a) (fp_q0 a)
(fp_q1 a) (fp_q2 a) (fp_q3 a) (fp_q4 a) (fp_q5 a) (fp_q6 a) (fp_q7 a) (fp_q8 a)
(fp_q9 a) (fp_q10 a) b (fp_q12 a) (fp_q13 a) (fp_q14 a) (fp_q15 a) (fp_q16 a)
(fp_q17 a) (fp_q18 a) (fp_q19 a) (fp_q20 a) (fp_q21 a) (fp_q22 a) (fp_q23 a) (fp_q24 a)
(fp_q25 a) (fp_q26 a) (fp_q27 a) (fp_q28 a) (fp_q29 a) (fp_q30 a) (fp_q31 a) (fp_fpsr a)
(fp_fpcr a) (csselr_el1 a) (sctlr_el1 a) (cpacr_el1 a) (ttbr0_el1 a) (ttbr1_el1 a) (tcr_el1 a) (afsr0_el1 a)
(afsr1_el1 a) (far_el1 a) (mair_el1 a) (vbar_el1 a) (contextidr_el1 a) (amair_el1 a) (cntkctl_el1 a) (par_el1 a)
(tpidr_el1 a) (spsr_el1 a) (mdscr_el1 a) (sp_el0 a) (tpidr_el0 a) (tpidrro_el0 a) (spsr_el2 a) (vmpidr_el2 a)
(mpidr_el1 a) (actlr_el1 a) (sp_el1 a) (elr_el1 a) (elr_el2 a) (vttbr_el2 a) (hcr_el2 a) (tpidr_el2 a)
(esr_el2 a) (ec a) (far_el2 a) (hpfar_el2 a).
Notation "a {fp_q11 : b }" := (update_fp_q11 a b) (at level 1).
Definition update_fp_q12 (a: CtxtRegs) b :=
mkCtxtRegs (x0 a) (x1 a) (x2 a) (x3 a) (x4 a) (x5 a) (x6 a) (x7 a)
(x8 a) (x9 a) (x10 a) (x11 a) (x12 a) (x13 a) (x14 a) (x15 a)
(x16 a) (x17 a) (x18 a) (x19 a) (x20 a) (x21 a) (x22 a) (x23 a)
(x24 a) (x25 a) (x26 a) (x27 a) (x28 a) (x29 a) (x30 a) (fp_q0 a)
(fp_q1 a) (fp_q2 a) (fp_q3 a) (fp_q4 a) (fp_q5 a) (fp_q6 a) (fp_q7 a) (fp_q8 a)
(fp_q9 a) (fp_q10 a) (fp_q11 a) b (fp_q13 a) (fp_q14 a) (fp_q15 a) (fp_q16 a)
(fp_q17 a) (fp_q18 a) (fp_q19 a) (fp_q20 a) (fp_q21 a) (fp_q22 a) (fp_q23 a) (fp_q24 a)
(fp_q25 a) (fp_q26 a) (fp_q27 a) (fp_q28 a) (fp_q29 a) (fp_q30 a) (fp_q31 a) (fp_fpsr a)
(fp_fpcr a) (csselr_el1 a) (sctlr_el1 a) (cpacr_el1 a) (ttbr0_el1 a) (ttbr1_el1 a) (tcr_el1 a) (afsr0_el1 a)
(afsr1_el1 a) (far_el1 a) (mair_el1 a) (vbar_el1 a) (contextidr_el1 a) (amair_el1 a) (cntkctl_el1 a) (par_el1 a)
(tpidr_el1 a) (spsr_el1 a) (mdscr_el1 a) (sp_el0 a) (tpidr_el0 a) (tpidrro_el0 a) (spsr_el2 a) (vmpidr_el2 a)
(mpidr_el1 a) (actlr_el1 a) (sp_el1 a) (elr_el1 a) (elr_el2 a) (vttbr_el2 a) (hcr_el2 a) (tpidr_el2 a)
(esr_el2 a) (ec a) (far_el2 a) (hpfar_el2 a).
Notation "a {fp_q12 : b }" := (update_fp_q12 a b) (at level 1).
Definition update_fp_q13 (a: CtxtRegs) b :=
mkCtxtRegs (x0 a) (x1 a) (x2 a) (x3 a) (x4 a) (x5 a) (x6 a) (x7 a)
(x8 a) (x9 a) (x10 a) (x11 a) (x12 a) (x13 a) (x14 a) (x15 a)
(x16 a) (x17 a) (x18 a) (x19 a) (x20 a) (x21 a) (x22 a) (x23 a)
(x24 a) (x25 a) (x26 a) (x27 a) (x28 a) (x29 a) (x30 a) (fp_q0 a)
(fp_q1 a) (fp_q2 a) (fp_q3 a) (fp_q4 a) (fp_q5 a) (fp_q6 a) (fp_q7 a) (fp_q8 a)
(fp_q9 a) (fp_q10 a) (fp_q11 a) (fp_q12 a) b (fp_q14 a) (fp_q15 a) (fp_q16 a)
(fp_q17 a) (fp_q18 a) (fp_q19 a) (fp_q20 a) (fp_q21 a) (fp_q22 a) (fp_q23 a) (fp_q24 a)
(fp_q25 a) (fp_q26 a) (fp_q27 a) (fp_q28 a) (fp_q29 a) (fp_q30 a) (fp_q31 a) (fp_fpsr a)
(fp_fpcr a) (csselr_el1 a) (sctlr_el1 a) (cpacr_el1 a) (ttbr0_el1 a) (ttbr1_el1 a) (tcr_el1 a) (afsr0_el1 a)
(afsr1_el1 a) (far_el1 a) (mair_el1 a) (vbar_el1 a) (contextidr_el1 a) (amair_el1 a) (cntkctl_el1 a) (par_el1 a)
(tpidr_el1 a) (spsr_el1 a) (mdscr_el1 a) (sp_el0 a) (tpidr_el0 a) (tpidrro_el0 a) (spsr_el2 a) (vmpidr_el2 a)
(mpidr_el1 a) (actlr_el1 a) (sp_el1 a) (elr_el1 a) (elr_el2 a) (vttbr_el2 a) (hcr_el2 a) (tpidr_el2 a)
(esr_el2 a) (ec a) (far_el2 a) (hpfar_el2 a).
Notation "a {fp_q13 : b }" := (update_fp_q13 a b) (at level 1).
Definition update_fp_q14 (a: CtxtRegs) b :=
mkCtxtRegs (x0 a) (x1 a) (x2 a) (x3 a) (x4 a) (x5 a) (x6 a) (x7 a)
(x8 a) (x9 a) (x10 a) (x11 a) (x12 a) (x13 a) (x14 a) (x15 a)
(x16 a) (x17 a) (x18 a) (x19 a) (x20 a) (x21 a) (x22 a) (x23 a)
(x24 a) (x25 a) (x26 a) (x27 a) (x28 a) (x29 a) (x30 a) (fp_q0 a)
(fp_q1 a) (fp_q2 a) (fp_q3 a) (fp_q4 a) (fp_q5 a) (fp_q6 a) (fp_q7 a) (fp_q8 a)
(fp_q9 a) (fp_q10 a) (fp_q11 a) (fp_q12 a) (fp_q13 a) b (fp_q15 a) (fp_q16 a)
(fp_q17 a) (fp_q18 a) (fp_q19 a) (fp_q20 a) (fp_q21 a) (fp_q22 a) (fp_q23 a) (fp_q24 a)
(fp_q25 a) (fp_q26 a) (fp_q27 a) (fp_q28 a) (fp_q29 a) (fp_q30 a) (fp_q31 a) (fp_fpsr a)
(fp_fpcr a) (csselr_el1 a) (sctlr_el1 a) (cpacr_el1 a) (ttbr0_el1 a) (ttbr1_el1 a) (tcr_el1 a) (afsr0_el1 a)
(afsr1_el1 a) (far_el1 a) (mair_el1 a) (vbar_el1 a) (contextidr_el1 a) (amair_el1 a) (cntkctl_el1 a) (par_el1 a)
(tpidr_el1 a) (spsr_el1 a) (mdscr_el1 a) (sp_el0 a) (tpidr_el0 a) (tpidrro_el0 a) (spsr_el2 a) (vmpidr_el2 a)
(mpidr_el1 a) (actlr_el1 a) (sp_el1 a) (elr_el1 a) (elr_el2 a) (vttbr_el2 a) (hcr_el2 a) (tpidr_el2 a)
(esr_el2 a) (ec a) (far_el2 a) (hpfar_el2 a).
Notation "a {fp_q14 : b }" := (update_fp_q14 a b) (at level 1).
Definition update_fp_q15 (a: CtxtRegs) b :=
mkCtxtRegs (x0 a) (x1 a) (x2 a) (x3 a) (x4 a) (x5 a) (x6 a) (x7 a)
(x8 a) (x9 a) (x10 a) (x11 a) (x12 a) (x13 a) (x14 a) (x15 a)
(x16 a) (x17 a) (x18 a) (x19 a) (x20 a) (x21 a) (x22 a) (x23 a)
(x24 a) (x25 a) (x26 a) (x27 a) (x28 a) (x29 a) (x30 a) (fp_q0 a)
(fp_q1 a) (fp_q2 a) (fp_q3 a) (fp_q4 a) (fp_q5 a) (fp_q6 a) (fp_q7 a) (fp_q8 a)
(fp_q9 a) (fp_q10 a) (fp_q11 a) (fp_q12 a) (fp_q13 a) (fp_q14 a) b (fp_q16 a)
(fp_q17 a) (fp_q18 a) (fp_q19 a) (fp_q20 a) (fp_q21 a) (fp_q22 a) (fp_q23 a) (fp_q24 a)
(fp_q25 a) (fp_q26 a) (fp_q27 a) (fp_q28 a) (fp_q29 a) (fp_q30 a) (fp_q31 a) (fp_fpsr a)
(fp_fpcr a) (csselr_el1 a) (sctlr_el1 a) (cpacr_el1 a) (ttbr0_el1 a) (ttbr1_el1 a) (tcr_el1 a) (afsr0_el1 a)
(afsr1_el1 a) (far_el1 a) (mair_el1 a) (vbar_el1 a) (contextidr_el1 a) (amair_el1 a) (cntkctl_el1 a) (par_el1 a)
(tpidr_el1 a) (spsr_el1 a) (mdscr_el1 a) (sp_el0 a) (tpidr_el0 a) (tpidrro_el0 a) (spsr_el2 a) (vmpidr_el2 a)
(mpidr_el1 a) (actlr_el1 a) (sp_el1 a) (elr_el1 a) (elr_el2 a) (vttbr_el2 a) (hcr_el2 a) (tpidr_el2 a)
(esr_el2 a) (ec a) (far_el2 a) (hpfar_el2 a).
Notation "a {fp_q15 : b }" := (update_fp_q15 a b) (at level 1).
Definition update_fp_q16 (a: CtxtRegs) b :=
mkCtxtRegs (x0 a) (x1 a) (x2 a) (x3 a) (x4 a) (x5 a) (x6 a) (x7 a)
(x8 a) (x9 a) (x10 a) (x11 a) (x12 a) (x13 a) (x14 a) (x15 a)
(x16 a) (x17 a) (x18 a) (x19 a) (x20 a) (x21 a) (x22 a) (x23 a)
(x24 a) (x25 a) (x26 a) (x27 a) (x28 a) (x29 a) (x30 a) (fp_q0 a)
(fp_q1 a) (fp_q2 a) (fp_q3 a) (fp_q4 a) (fp_q5 a) (fp_q6 a) (fp_q7 a) (fp_q8 a)
(fp_q9 a) (fp_q10 a) (fp_q11 a) (fp_q12 a) (fp_q13 a) (fp_q14 a) (fp_q15 a) b
(fp_q17 a) (fp_q18 a) (fp_q19 a) (fp_q20 a) (fp_q21 a) (fp_q22 a) (fp_q23 a) (fp_q24 a)
(fp_q25 a) (fp_q26 a) (fp_q27 a) (fp_q28 a) (fp_q29 a) (fp_q30 a) (fp_q31 a) (fp_fpsr a)
(fp_fpcr a) (csselr_el1 a) (sctlr_el1 a) (cpacr_el1 a) (ttbr0_el1 a) (ttbr1_el1 a) (tcr_el1 a) (afsr0_el1 a)
(afsr1_el1 a) (far_el1 a) (mair_el1 a) (vbar_el1 a) (contextidr_el1 a) (amair_el1 a) (cntkctl_el1 a) (par_el1 a)
(tpidr_el1 a) (spsr_el1 a) (mdscr_el1 a) (sp_el0 a) (tpidr_el0 a) (tpidrro_el0 a) (spsr_el2 a) (vmpidr_el2 a)
(mpidr_el1 a) (actlr_el1 a) (sp_el1 a) (elr_el1 a) (elr_el2 a) (vttbr_el2 a) (hcr_el2 a) (tpidr_el2 a)
(esr_el2 a) (ec a) (far_el2 a) (hpfar_el2 a).
Notation "a {fp_q16 : b }" := (update_fp_q16 a b) (at level 1).
Definition update_fp_q17 (a: CtxtRegs) b :=
mkCtxtRegs (x0 a) (x1 a) (x2 a) (x3 a) (x4 a) (x5 a) (x6 a) (x7 a)
(x8 a) (x9 a) (x10 a) (x11 a) (x12 a) (x13 a) (x14 a) (x15 a)
(x16 a) (x17 a) (x18 a) (x19 a) (x20 a) (x21 a) (x22 a) (x23 a)
(x24 a) (x25 a) (x26 a) (x27 a) (x28 a) (x29 a) (x30 a) (fp_q0 a)
(fp_q1 a) (fp_q2 a) (fp_q3 a) (fp_q4 a) (fp_q5 a) (fp_q6 a) (fp_q7 a) (fp_q8 a)
(fp_q9 a) (fp_q10 a) (fp_q11 a) (fp_q12 a) (fp_q13 a) (fp_q14 a) (fp_q15 a) (fp_q16 a)
b (fp_q18 a) (fp_q19 a) (fp_q20 a) (fp_q21 a) (fp_q22 a) (fp_q23 a) (fp_q24 a)
(fp_q25 a) (fp_q26 a) (fp_q27 a) (fp_q28 a) (fp_q29 a) (fp_q30 a) (fp_q31 a) (fp_fpsr a)
(fp_fpcr a) (csselr_el1 a) (sctlr_el1 a) (cpacr_el1 a) (ttbr0_el1 a) (ttbr1_el1 a) (tcr_el1 a) (afsr0_el1 a)
(afsr1_el1 a) (far_el1 a) (mair_el1 a) (vbar_el1 a) (contextidr_el1 a) (amair_el1 a) (cntkctl_el1 a) (par_el1 a)
(tpidr_el1 a) (spsr_el1 a) (mdscr_el1 a) (sp_el0 a) (tpidr_el0 a) (tpidrro_el0 a) (spsr_el2 a) (vmpidr_el2 a)
(mpidr_el1 a) (actlr_el1 a) (sp_el1 a) (elr_el1 a) (elr_el2 a) (vttbr_el2 a) (hcr_el2 a) (tpidr_el2 a)
(esr_el2 a) (ec a) (far_el2 a) (hpfar_el2 a).
Notation "a {fp_q17 : b }" := (update_fp_q17 a b) (at level 1).
Definition update_fp_q18 (a: CtxtRegs) b :=
mkCtxtRegs (x0 a) (x1 a) (x2 a) (x3 a) (x4 a) (x5 a) (x6 a) (x7 a)
(x8 a) (x9 a) (x10 a) (x11 a) (x12 a) (x13 a) (x14 a) (x15 a)
(x16 a) (x17 a) (x18 a) (x19 a) (x20 a) (x21 a) (x22 a) (x23 a)
(x24 a) (x25 a) (x26 a) (x27 a) (x28 a) (x29 a) (x30 a) (fp_q0 a)
(fp_q1 a) (fp_q2 a) (fp_q3 a) (fp_q4 a) (fp_q5 a) (fp_q6 a) (fp_q7 a) (fp_q8 a)
(fp_q9 a) (fp_q10 a) (fp_q11 a) (fp_q12 a) (fp_q13 a) (fp_q14 a) (fp_q15 a) (fp_q16 a)
(fp_q17 a) b (fp_q19 a) (fp_q20 a) (fp_q21 a) (fp_q22 a) (fp_q23 a) (fp_q24 a)
(fp_q25 a) (fp_q26 a) (fp_q27 a) (fp_q28 a) (fp_q29 a) (fp_q30 a) (fp_q31 a) (fp_fpsr a)
(fp_fpcr a) (csselr_el1 a) (sctlr_el1 a) (cpacr_el1 a) (ttbr0_el1 a) (ttbr1_el1 a) (tcr_el1 a) (afsr0_el1 a)
(afsr1_el1 a) (far_el1 a) (mair_el1 a) (vbar_el1 a) (contextidr_el1 a) (amair_el1 a) (cntkctl_el1 a) (par_el1 a)
(tpidr_el1 a) (spsr_el1 a) (mdscr_el1 a) (sp_el0 a) (tpidr_el0 a) (tpidrro_el0 a) (spsr_el2 a) (vmpidr_el2 a)
(mpidr_el1 a) (actlr_el1 a) (sp_el1 a) (elr_el1 a) (elr_el2 a) (vttbr_el2 a) (hcr_el2 a) (tpidr_el2 a)
(esr_el2 a) (ec a) (far_el2 a) (hpfar_el2 a).
Notation "a {fp_q18 : b }" := (update_fp_q18 a b) (at level 1).
Definition update_fp_q19 (a: CtxtRegs) b :=
mkCtxtRegs (x0 a) (x1 a) (x2 a) (x3 a) (x4 a) (x5 a) (x6 a) (x7 a)
(x8 a) (x9 a) (x10 a) (x11 a) (x12 a) (x13 a) (x14 a) (x15 a)
(x16 a) (x17 a) (x18 a) (x19 a) (x20 a) (x21 a) (x22 a) (x23 a)
(x24 a) (x25 a) (x26 a) (x27 a) (x28 a) (x29 a) (x30 a) (fp_q0 a)
(fp_q1 a) (fp_q2 a) (fp_q3 a) (fp_q4 a) (fp_q5 a) (fp_q6 a) (fp_q7 a) (fp_q8 a)
(fp_q9 a) (fp_q10 a) (fp_q11 a) (fp_q12 a) (fp_q13 a) (fp_q14 a) (fp_q15 a) (fp_q16 a)
(fp_q17 a) (fp_q18 a) b (fp_q20 a) (fp_q21 a) (fp_q22 a) (fp_q23 a) (fp_q24 a)
(fp_q25 a) (fp_q26 a) (fp_q27 a) (fp_q28 a) (fp_q29 a) (fp_q30 a) (fp_q31 a) (fp_fpsr a)
(fp_fpcr a) (csselr_el1 a) (sctlr_el1 a) (cpacr_el1 a) (ttbr0_el1 a) (ttbr1_el1 a) (tcr_el1 a) (afsr0_el1 a)
(afsr1_el1 a) (far_el1 a) (mair_el1 a) (vbar_el1 a) (contextidr_el1 a) (amair_el1 a) (cntkctl_el1 a) (par_el1 a)
(tpidr_el1 a) (spsr_el1 a) (mdscr_el1 a) (sp_el0 a) (tpidr_el0 a) (tpidrro_el0 a) (spsr_el2 a) (vmpidr_el2 a)
(mpidr_el1 a) (actlr_el1 a) (sp_el1 a) (elr_el1 a) (elr_el2 a) (vttbr_el2 a) (hcr_el2 a) (tpidr_el2 a)
(esr_el2 a) (ec a) (far_el2 a) (hpfar_el2 a).
Notation "a {fp_q19 : b }" := (update_fp_q19 a b) (at level 1).
Definition update_fp_q20 (a: CtxtRegs) b :=
mkCtxtRegs (x0 a) (x1 a) (x2 a) (x3 a) (x4 a) (x5 a) (x6 a) (x7 a)
(x8 a) (x9 a) (x10 a) (x11 a) (x12 a) (x13 a) (x14 a) (x15 a)
(x16 a) (x17 a) (x18 a) (x19 a) (x20 a) (x21 a) (x22 a) (x23 a)
(x24 a) (x25 a) (x26 a) (x27 a) (x28 a) (x29 a) (x30 a) (fp_q0 a)
(fp_q1 a) (fp_q2 a) (fp_q3 a) (fp_q4 a) (fp_q5 a) (fp_q6 a) (fp_q7 a) (fp_q8 a)
(fp_q9 a) (fp_q10 a) (fp_q11 a) (fp_q12 a) (fp_q13 a) (fp_q14 a) (fp_q15 a) (fp_q16 a)
(fp_q17 a) (fp_q18 a) (fp_q19 a) b (fp_q21 a) (fp_q22 a) (fp_q23 a) (fp_q24 a)
(fp_q25 a) (fp_q26 a) (fp_q27 a) (fp_q28 a) (fp_q29 a) (fp_q30 a) (fp_q31 a) (fp_fpsr a)
(fp_fpcr a) (csselr_el1 a) (sctlr_el1 a) (cpacr_el1 a) (ttbr0_el1 a) (ttbr1_el1 a) (tcr_el1 a) (afsr0_el1 a)
(afsr1_el1 a) (far_el1 a) (mair_el1 a) (vbar_el1 a) (contextidr_el1 a) (amair_el1 a) (cntkctl_el1 a) (par_el1 a)
(tpidr_el1 a) (spsr_el1 a) (mdscr_el1 a) (sp_el0 a) (tpidr_el0 a) (tpidrro_el0 a) (spsr_el2 a) (vmpidr_el2 a)
(mpidr_el1 a) (actlr_el1 a) (sp_el1 a) (elr_el1 a) (elr_el2 a) (vttbr_el2 a) (hcr_el2 a) (tpidr_el2 a)
(esr_el2 a) (ec a) (far_el2 a) (hpfar_el2 a).
Notation "a {fp_q20 : b }" := (update_fp_q20 a b) (at level 1).
Definition update_fp_q21 (a: CtxtRegs) b :=
mkCtxtRegs (x0 a) (x1 a) (x2 a) (x3 a) (x4 a) (x5 a) (x6 a) (x7 a)
(x8 a) (x9 a) (x10 a) (x11 a) (x12 a) (x13 a) (x14 a) (x15 a)
(x16 a) (x17 a) (x18 a) (x19 a) (x20 a) (x21 a) (x22 a) (x23 a)
(x24 a) (x25 a) (x26 a) (x27 a) (x28 a) (x29 a) (x30 a) (fp_q0 a)
(fp_q1 a) (fp_q2 a) (fp_q3 a) (fp_q4 a) (fp_q5 a) (fp_q6 a) (fp_q7 a) (fp_q8 a)
(fp_q9 a) (fp_q10 a) (fp_q11 a) (fp_q12 a) (fp_q13 a) (fp_q14 a) (fp_q15 a) (fp_q16 a)
(fp_q17 a) (fp_q18 a) (fp_q19 a) (fp_q20 a) b (fp_q22 a) (fp_q23 a) (fp_q24 a)
(fp_q25 a) (fp_q26 a) (fp_q27 a) (fp_q28 a) (fp_q29 a) (fp_q30 a) (fp_q31 a) (fp_fpsr a)
(fp_fpcr a) (csselr_el1 a) (sctlr_el1 a) (cpacr_el1 a) (ttbr0_el1 a) (ttbr1_el1 a) (tcr_el1 a) (afsr0_el1 a)
(afsr1_el1 a) (far_el1 a) (mair_el1 a) (vbar_el1 a) (contextidr_el1 a) (amair_el1 a) (cntkctl_el1 a) (par_el1 a)
(tpidr_el1 a) (spsr_el1 a) (mdscr_el1 a) (sp_el0 a) (tpidr_el0 a) (tpidrro_el0 a) (spsr_el2 a) (vmpidr_el2 a)
(mpidr_el1 a) (actlr_el1 a) (sp_el1 a) (elr_el1 a) (elr_el2 a) (vttbr_el2 a) (hcr_el2 a) (tpidr_el2 a)
(esr_el2 a) (ec a) (far_el2 a) (hpfar_el2 a).
Notation "a {fp_q21 : b }" := (update_fp_q21 a b) (at level 1).
Definition update_fp_q22 (a: CtxtRegs) b :=
mkCtxtRegs (x0 a) (x1 a) (x2 a) (x3 a) (x4 a) (x5 a) (x6 a) (x7 a)
(x8 a) (x9 a) (x10 a) (x11 a) (x12 a) (x13 a) (x14 a) (x15 a)
(x16 a) (x17 a) (x18 a) (x19 a) (x20 a) (x21 a) (x22 a) (x23 a)
(x24 a) (x25 a) (x26 a) (x27 a) (x28 a) (x29 a) (x30 a) (fp_q0 a)
(fp_q1 a) (fp_q2 a) (fp_q3 a) (fp_q4 a) (fp_q5 a) (fp_q6 a) (fp_q7 a) (fp_q8 a)
(fp_q9 a) (fp_q10 a) (fp_q11 a) (fp_q12 a) (fp_q13 a) (fp_q14 a) (fp_q15 a) (fp_q16 a)
(fp_q17 a) (fp_q18 a) (fp_q19 a) (fp_q20 a) (fp_q21 a) b (fp_q23 a) (fp_q24 a)
(fp_q25 a) (fp_q26 a) (fp_q27 a) (fp_q28 a) (fp_q29 a) (fp_q30 a) (fp_q31 a) (fp_fpsr a)
(fp_fpcr a) (csselr_el1 a) (sctlr_el1 a) (cpacr_el1 a) (ttbr0_el1 a) (ttbr1_el1 a) (tcr_el1 a) (afsr0_el1 a)
(afsr1_el1 a) (far_el1 a) (mair_el1 a) (vbar_el1 a) (contextidr_el1 a) (amair_el1 a) (cntkctl_el1 a) (par_el1 a)
(tpidr_el1 a) (spsr_el1 a) (mdscr_el1 a) (sp_el0 a) (tpidr_el0 a) (tpidrro_el0 a) (spsr_el2 a) (vmpidr_el2 a)
(mpidr_el1 a) (actlr_el1 a) (sp_el1 a) (elr_el1 a) (elr_el2 a) (vttbr_el2 a) (hcr_el2 a) (tpidr_el2 a)
(esr_el2 a) (ec a) (far_el2 a) (hpfar_el2 a).
Notation "a {fp_q22 : b }" := (update_fp_q22 a b) (at level 1).
Definition update_fp_q23 (a: CtxtRegs) b :=
mkCtxtRegs (x0 a) (x1 a) (x2 a) (x3 a) (x4 a) (x5 a) (x6 a) (x7 a)
(x8 a) (x9 a) (x10 a) (x11 a) (x12 a) (x13 a) (x14 a) (x15 a)
(x16 a) (x17 a) (x18 a) (x19 a) (x20 a) (x21 a) (x22 a) (x23 a)
(x24 a) (x25 a) (x26 a) (x27 a) (x28 a) (x29 a) (x30 a) (fp_q0 a)
(fp_q1 a) (fp_q2 a) (fp_q3 a) (fp_q4 a) (fp_q5 a) (fp_q6 a) (fp_q7 a) (fp_q8 a)
(fp_q9 a) (fp_q10 a) (fp_q11 a) (fp_q12 a) (fp_q13 a) (fp_q14 a) (fp_q15 a) (fp_q16 a)
(fp_q17 a) (fp_q18 a) (fp_q19 a) (fp_q20 a) (fp_q21 a) (fp_q22 a) b (fp_q24 a)
(fp_q25 a) (fp_q26 a) (fp_q27 a) (fp_q28 a) (fp_q29 a) (fp_q30 a) (fp_q31 a) (fp_fpsr a)
(fp_fpcr a) (csselr_el1 a) (sctlr_el1 a) (cpacr_el1 a) (ttbr0_el1 a) (ttbr1_el1 a) (tcr_el1 a) (afsr0_el1 a)
(afsr1_el1 a) (far_el1 a) (mair_el1 a) (vbar_el1 a) (contextidr_el1 a) (amair_el1 a) (cntkctl_el1 a) (par_el1 a)
(tpidr_el1 a) (spsr_el1 a) (mdscr_el1 a) (sp_el0 a) (tpidr_el0 a) (tpidrro_el0 a) (spsr_el2 a) (vmpidr_el2 a)
(mpidr_el1 a) (actlr_el1 a) (sp_el1 a) (elr_el1 a) (elr_el2 a) (vttbr_el2 a) (hcr_el2 a) (tpidr_el2 a)
(esr_el2 a) (ec a) (far_el2 a) (hpfar_el2 a).
Notation "a {fp_q23 : b }" := (update_fp_q23 a b) (at level 1).
Definition update_fp_q24 (a: CtxtRegs) b :=
mkCtxtRegs (x0 a) (x1 a) (x2 a) (x3 a) (x4 a) (x5 a) (x6 a) (x7 a)
(x8 a) (x9 a) (x10 a) (x11 a) (x12 a) (x13 a) (x14 a) (x15 a)
(x16 a) (x17 a) (x18 a) (x19 a) (x20 a) (x21 a) (x22 a) (x23 a)
(x24 a) (x25 a) (x26 a) (x27 a) (x28 a) (x29 a) (x30 a) (fp_q0 a)
(fp_q1 a) (fp_q2 a) (fp_q3 a) (fp_q4 a) (fp_q5 a) (fp_q6 a) (fp_q7 a) (fp_q8 a)
(fp_q9 a) (fp_q10 a) (fp_q11 a) (fp_q12 a) (fp_q13 a) (fp_q14 a) (fp_q15 a) (fp_q16 a)
(fp_q17 a) (fp_q18 a) (fp_q19 a) (fp_q20 a) (fp_q21 a) (fp_q22 a) (fp_q23 a) b
(fp_q25 a) (fp_q26 a) (fp_q27 a) (fp_q28 a) (fp_q29 a) (fp_q30 a) (fp_q31 a) (fp_fpsr a)
(fp_fpcr a) (csselr_el1 a) (sctlr_el1 a) (cpacr_el1 a) (ttbr0_el1 a) (ttbr1_el1 a) (tcr_el1 a) (afsr0_el1 a)
(afsr1_el1 a) (far_el1 a) (mair_el1 a) (vbar_el1 a) (contextidr_el1 a) (amair_el1 a) (cntkctl_el1 a) (par_el1 a)
(tpidr_el1 a) (spsr_el1 a) (mdscr_el1 a) (sp_el0 a) (tpidr_el0 a) (tpidrro_el0 a) (spsr_el2 a) (vmpidr_el2 a)
(mpidr_el1 a) (actlr_el1 a) (sp_el1 a) (elr_el1 a) (elr_el2 a) (vttbr_el2 a) (hcr_el2 a) (tpidr_el2 a)
(esr_el2 a) (ec a) (far_el2 a) (hpfar_el2 a).
Notation "a {fp_q24 : b }" := (update_fp_q24 a b) (at level 1).
Definition update_fp_q25 (a: CtxtRegs) b :=
mkCtxtRegs (x0 a) (x1 a) (x2 a) (x3 a) (x4 a) (x5 a) (x6 a) (x7 a)
(x8 a) (x9 a) (x10 a) (x11 a) (x12 a) (x13 a) (x14 a) (x15 a)
(x16 a) (x17 a) (x18 a) (x19 a) (x20 a) (x21 a) (x22 a) (x23 a)
(x24 a) (x25 a) (x26 a) (x27 a) (x28 a) (x29 a) (x30 a) (fp_q0 a)
(fp_q1 a) (fp_q2 a) (fp_q3 a) (fp_q4 a) (fp_q5 a) (fp_q6 a) (fp_q7 a) (fp_q8 a)
(fp_q9 a) (fp_q10 a) (fp_q11 a) (fp_q12 a) (fp_q13 a) (fp_q14 a) (fp_q15 a) (fp_q16 a)
(fp_q17 a) (fp_q18 a) (fp_q19 a) (fp_q20 a) (fp_q21 a) (fp_q22 a) (fp_q23 a) (fp_q24 a)
b (fp_q26 a) (fp_q27 a) (fp_q28 a) (fp_q29 a) (fp_q30 a) (fp_q31 a) (fp_fpsr a)
(fp_fpcr a) (csselr_el1 a) (sctlr_el1 a) (cpacr_el1 a) (ttbr0_el1 a) (ttbr1_el1 a) (tcr_el1 a) (afsr0_el1 a)
(afsr1_el1 a) (far_el1 a) (mair_el1 a) (vbar_el1 a) (contextidr_el1 a) (amair_el1 a) (cntkctl_el1 a) (par_el1 a)
(tpidr_el1 a) (spsr_el1 a) (mdscr_el1 a) (sp_el0 a) (tpidr_el0 a) (tpidrro_el0 a) (spsr_el2 a) (vmpidr_el2 a)
(mpidr_el1 a) (actlr_el1 a) (sp_el1 a) (elr_el1 a) (elr_el2 a) (vttbr_el2 a) (hcr_el2 a) (tpidr_el2 a)
(esr_el2 a) (ec a) (far_el2 a) (hpfar_el2 a).
Notation "a {fp_q25 : b }" := (update_fp_q25 a b) (at level 1).
Definition update_fp_q26 (a: CtxtRegs) b :=
mkCtxtRegs (x0 a) (x1 a) (x2 a) (x3 a) (x4 a) (x5 a) (x6 a) (x7 a)
(x8 a) (x9 a) (x10 a) (x11 a) (x12 a) (x13 a) (x14 a) (x15 a)
(x16 a) (x17 a) (x18 a) (x19 a) (x20 a) (x21 a) (x22 a) (x23 a)
(x24 a) (x25 a) (x26 a) (x27 a) (x28 a) (x29 a) (x30 a) (fp_q0 a)
(fp_q1 a) (fp_q2 a) (fp_q3 a) (fp_q4 a) (fp_q5 a) (fp_q6 a) (fp_q7 a) (fp_q8 a)
(fp_q9 a) (fp_q10 a) (fp_q11 a) (fp_q12 a) (fp_q13 a) (fp_q14 a) (fp_q15 a) (fp_q16 a)
(fp_q17 a) (fp_q18 a) (fp_q19 a) (fp_q20 a) (fp_q21 a) (fp_q22 a) (fp_q23 a) (fp_q24 a)
(fp_q25 a) b (fp_q27 a) (fp_q28 a) (fp_q29 a) (fp_q30 a) (fp_q31 a) (fp_fpsr a)
(fp_fpcr a) (csselr_el1 a) (sctlr_el1 a) (cpacr_el1 a) (ttbr0_el1 a) (ttbr1_el1 a) (tcr_el1 a) (afsr0_el1 a)
(afsr1_el1 a) (far_el1 a) (mair_el1 a) (vbar_el1 a) (contextidr_el1 a) (amair_el1 a) (cntkctl_el1 a) (par_el1 a)
(tpidr_el1 a) (spsr_el1 a) (mdscr_el1 a) (sp_el0 a) (tpidr_el0 a) (tpidrro_el0 a) (spsr_el2 a) (vmpidr_el2 a)
(mpidr_el1 a) (actlr_el1 a) (sp_el1 a) (elr_el1 a) (elr_el2 a) (vttbr_el2 a) (hcr_el2 a) (tpidr_el2 a)
(esr_el2 a) (ec a) (far_el2 a) (hpfar_el2 a).
Notation "a {fp_q26 : b }" := (update_fp_q26 a b) (at level 1).
Definition update_fp_q27 (a: CtxtRegs) b :=
mkCtxtRegs (x0 a) (x1 a) (x2 a) (x3 a) (x4 a) (x5 a) (x6 a) (x7 a)
(x8 a) (x9 a) (x10 a) (x11 a) (x12 a) (x13 a) (x14 a) (x15 a)
(x16 a) (x17 a) (x18 a) (x19 a) (x20 a) (x21 a) (x22 a) (x23 a)
(x24 a) (x25 a) (x26 a) (x27 a) (x28 a) (x29 a) (x30 a) (fp_q0 a)
(fp_q1 a) (fp_q2 a) (fp_q3 a) (fp_q4 a) (fp_q5 a) (fp_q6 a) (fp_q7 a) (fp_q8 a)
(fp_q9 a) (fp_q10 a) (fp_q11 a) (fp_q12 a) (fp_q13 a) (fp_q14 a) (fp_q15 a) (fp_q16 a)
(fp_q17 a) (fp_q18 a) (fp_q19 a) (fp_q20 a) (fp_q21 a) (fp_q22 a) (fp_q23 a) (fp_q24 a)
(fp_q25 a) (fp_q26 a) b (fp_q28 a) (fp_q29 a) (fp_q30 a) (fp_q31 a) (fp_fpsr a)
(fp_fpcr a) (csselr_el1 a) (sctlr_el1 a) (cpacr_el1 a) (ttbr0_el1 a) (ttbr1_el1 a) (tcr_el1 a) (afsr0_el1 a)
(afsr1_el1 a) (far_el1 a) (mair_el1 a) (vbar_el1 a) (contextidr_el1 a) (amair_el1 a) (cntkctl_el1 a) (par_el1 a)
(tpidr_el1 a) (spsr_el1 a) (mdscr_el1 a) (sp_el0 a) (tpidr_el0 a) (tpidrro_el0 a) (spsr_el2 a) (vmpidr_el2 a)
(mpidr_el1 a) (actlr_el1 a) (sp_el1 a) (elr_el1 a) (elr_el2 a) (vttbr_el2 a) (hcr_el2 a) (tpidr_el2 a)
(esr_el2 a) (ec a) (far_el2 a) (hpfar_el2 a).
Notation "a {fp_q27 : b }" := (update_fp_q27 a b) (at level 1).
Definition update_fp_q28 (a: CtxtRegs) b :=
mkCtxtRegs (x0 a) (x1 a) (x2 a) (x3 a) (x4 a) (x5 a) (x6 a) (x7 a)
(x8 a) (x9 a) (x10 a) (x11 a) (x12 a) (x13 a) (x14 a) (x15 a)
(x16 a) (x17 a) (x18 a) (x19 a) (x20 a) (x21 a) (x22 a) (x23 a)
(x24 a) (x25 a) (x26 a) (x27 a) (x28 a) (x29 a) (x30 a) (fp_q0 a)
(fp_q1 a) (fp_q2 a) (fp_q3 a) (fp_q4 a) (fp_q5 a) (fp_q6 a) (fp_q7 a) (fp_q8 a)
(fp_q9 a) (fp_q10 a) (fp_q11 a) (fp_q12 a) (fp_q13 a) (fp_q14 a) (fp_q15 a) (fp_q16 a)
(fp_q17 a) (fp_q18 a) (fp_q19 a) (fp_q20 a) (fp_q21 a) (fp_q22 a) (fp_q23 a) (fp_q24 a)
(fp_q25 a) (fp_q26 a) (fp_q27 a) b (fp_q29 a) (fp_q30 a) (fp_q31 a) (fp_fpsr a)
(fp_fpcr a) (csselr_el1 a) (sctlr_el1 a) (cpacr_el1 a) (ttbr0_el1 a) (ttbr1_el1 a) (tcr_el1 a) (afsr0_el1 a)
(afsr1_el1 a) (far_el1 a) (mair_el1 a) (vbar_el1 a) (contextidr_el1 a) (amair_el1 a) (cntkctl_el1 a) (par_el1 a)
(tpidr_el1 a) (spsr_el1 a) (mdscr_el1 a) (sp_el0 a) (tpidr_el0 a) (tpidrro_el0 a) (spsr_el2 a) (vmpidr_el2 a)
(mpidr_el1 a) (actlr_el1 a) (sp_el1 a) (elr_el1 a) (elr_el2 a) (vttbr_el2 a) (hcr_el2 a) (tpidr_el2 a)
(esr_el2 a) (ec a) (far_el2 a) (hpfar_el2 a).
Notation "a {fp_q28 : b }" := (update_fp_q28 a b) (at level 1).
Definition update_fp_q29 (a: CtxtRegs) b :=
mkCtxtRegs (x0 a) (x1 a) (x2 a) (x3 a) (x4 a) (x5 a) (x6 a) (x7 a)
(x8 a) (x9 a) (x10 a) (x11 a) (x12 a) (x13 a) (x14 a) (x15 a)
(x16 a) (x17 a) (x18 a) (x19 a) (x20 a) (x21 a) (x22 a) (x23 a)
(x24 a) (x25 a) (x26 a) (x27 a) (x28 a) (x29 a) (x30 a) (fp_q0 a)
(fp_q1 a) (fp_q2 a) (fp_q3 a) (fp_q4 a) (fp_q5 a) (fp_q6 a) (fp_q7 a) (fp_q8 a)
(fp_q9 a) (fp_q10 a) (fp_q11 a) (fp_q12 a) (fp_q13 a) (fp_q14 a) (fp_q15 a) (fp_q16 a)
(fp_q17 a) (fp_q18 a) (fp_q19 a) (fp_q20 a) (fp_q21 a) (fp_q22 a) (fp_q23 a) (fp_q24 a)
(fp_q25 a) (fp_q26 a) (fp_q27 a) (fp_q28 a) b (fp_q30 a) (fp_q31 a) (fp_fpsr a)
(fp_fpcr a) (csselr_el1 a) (sctlr_el1 a) (cpacr_el1 a) (ttbr0_el1 a) (ttbr1_el1 a) (tcr_el1 a) (afsr0_el1 a)
(afsr1_el1 a) (far_el1 a) (mair_el1 a) (vbar_el1 a) (contextidr_el1 a) (amair_el1 a) (cntkctl_el1 a) (par_el1 a)
(tpidr_el1 a) (spsr_el1 a) (mdscr_el1 a) (sp_el0 a) (tpidr_el0 a) (tpidrro_el0 a) (spsr_el2 a) (vmpidr_el2 a)
(mpidr_el1 a) (actlr_el1 a) (sp_el1 a) (elr_el1 a) (elr_el2 a) (vttbr_el2 a) (hcr_el2 a) (tpidr_el2 a)
(esr_el2 a) (ec a) (far_el2 a) (hpfar_el2 a).
Notation "a {fp_q29 : b }" := (update_fp_q29 a b) (at level 1).
Definition update_fp_q30 (a: CtxtRegs) b :=
mkCtxtRegs (x0 a) (x1 a) (x2 a) (x3 a) (x4 a) (x5 a) (x6 a) (x7 a)
(x8 a) (x9 a) (x10 a) (x11 a) (x12 a) (x13 a) (x14 a) (x15 a)
(x16 a) (x17 a) (x18 a) (x19 a) (x20 a) (x21 a) (x22 a) (x23 a)
(x24 a) (x25 a) (x26 a) (x27 a) (x28 a) (x29 a) (x30 a) (fp_q0 a)
(fp_q1 a) (fp_q2 a) (fp_q3 a) (fp_q4 a) (fp_q5 a) (fp_q6 a) (fp_q7 a) (fp_q8 a)
(fp_q9 a) (fp_q10 a) (fp_q11 a) (fp_q12 a) (fp_q13 a) (fp_q14 a) (fp_q15 a) (fp_q16 a)
(fp_q17 a) (fp_q18 a) (fp_q19 a) (fp_q20 a) (fp_q21 a) (fp_q22 a) (fp_q23 a) (fp_q24 a)
(fp_q25 a) (fp_q26 a) (fp_q27 a) (fp_q28 a) (fp_q29 a) b (fp_q31 a) (fp_fpsr a)
(fp_fpcr a) (csselr_el1 a) (sctlr_el1 a) (cpacr_el1 a) (ttbr0_el1 a) (ttbr1_el1 a) (tcr_el1 a) (afsr0_el1 a)
(afsr1_el1 a) (far_el1 a) (mair_el1 a) (vbar_el1 a) (contextidr_el1 a) (amair_el1 a) (cntkctl_el1 a) (par_el1 a)
(tpidr_el1 a) (spsr_el1 a) (mdscr_el1 a) (sp_el0 a) (tpidr_el0 a) (tpidrro_el0 a) (spsr_el2 a) (vmpidr_el2 a)
(mpidr_el1 a) (actlr_el1 a) (sp_el1 a) (elr_el1 a) (elr_el2 a) (vttbr_el2 a) (hcr_el2 a) (tpidr_el2 a)
(esr_el2 a) (ec a) (far_el2 a) (hpfar_el2 a).
Notation "a {fp_q30 : b }" := (update_fp_q30 a b) (at level 1).
Definition update_fp_q31 (a: CtxtRegs) b :=
mkCtxtRegs (x0 a) (x1 a) (x2 a) (x3 a) (x4 a) (x5 a) (x6 a) (x7 a)
(x8 a) (x9 a) (x10 a) (x11 a) (x12 a) (x13 a) (x14 a) (x15 a)
(x16 a) (x17 a) (x18 a) (x19 a) (x20 a) (x21 a) (x22 a) (x23 a)
(x24 a) (x25 a) (x26 a) (x27 a) (x28 a) (x29 a) (x30 a) (fp_q0 a)
(fp_q1 a) (fp_q2 a) (fp_q3 a) (fp_q4 a) (fp_q5 a) (fp_q6 a) (fp_q7 a) (fp_q8 a)
(fp_q9 a) (fp_q10 a) (fp_q11 a) (fp_q12 a) (fp_q13 a) (fp_q14 a) (fp_q15 a) (fp_q16 a)
(fp_q17 a) (fp_q18 a) (fp_q19 a) (fp_q20 a) (fp_q21 a) (fp_q22 a) (fp_q23 a) (fp_q24 a)
(fp_q25 a) (fp_q26 a) (fp_q27 a) (fp_q28 a) (fp_q29 a) (fp_q30 a) b (fp_fpsr a)
(fp_fpcr a) (csselr_el1 a) (sctlr_el1 a) (cpacr_el1 a) (ttbr0_el1 a) (ttbr1_el1 a) (tcr_el1 a) (afsr0_el1 a)
(afsr1_el1 a) (far_el1 a) (mair_el1 a) (vbar_el1 a) (contextidr_el1 a) (amair_el1 a) (cntkctl_el1 a) (par_el1 a)
(tpidr_el1 a) (spsr_el1 a) (mdscr_el1 a) (sp_el0 a) (tpidr_el0 a) (tpidrro_el0 a) (spsr_el2 a) (vmpidr_el2 a)
(mpidr_el1 a) (actlr_el1 a) (sp_el1 a) (elr_el1 a) (elr_el2 a) (vttbr_el2 a) (hcr_el2 a) (tpidr_el2 a)
(esr_el2 a) (ec a) (far_el2 a) (hpfar_el2 a).
Notation "a {fp_q31 : b }" := (update_fp_q31 a b) (at level 1).
Definition update_fp_fpsr (a: CtxtRegs) b :=
mkCtxtRegs (x0 a) (x1 a) (x2 a) (x3 a) (x4 a) (x5 a) (x6 a) (x7 a)
(x8 a) (x9 a) (x10 a) (x11 a) (x12 a) (x13 a) (x14 a) (x15 a)
(x16 a) (x17 a) (x18 a) (x19 a) (x20 a) (x21 a) (x22 a) (x23 a)
(x24 a) (x25 a) (x26 a) (x27 a) (x28 a) (x29 a) (x30 a) (fp_q0 a)
(fp_q1 a) (fp_q2 a) (fp_q3 a) (fp_q4 a) (fp_q5 a) (fp_q6 a) (fp_q7 a) (fp_q8 a)
(fp_q9 a) (fp_q10 a) (fp_q11 a) (fp_q12 a) (fp_q13 a) (fp_q14 a) (fp_q15 a) (fp_q16 a)
(fp_q17 a) (fp_q18 a) (fp_q19 a) (fp_q20 a) (fp_q21 a) (fp_q22 a) (fp_q23 a) (fp_q24 a)
(fp_q25 a) (fp_q26 a) (fp_q27 a) (fp_q28 a) (fp_q29 a) (fp_q30 a) (fp_q31 a) b
(fp_fpcr a) (csselr_el1 a) (sctlr_el1 a) (cpacr_el1 a) (ttbr0_el1 a) (ttbr1_el1 a) (tcr_el1 a) (afsr0_el1 a)
(afsr1_el1 a) (far_el1 a) (mair_el1 a) (vbar_el1 a) (contextidr_el1 a) (amair_el1 a) (cntkctl_el1 a) (par_el1 a)
(tpidr_el1 a) (spsr_el1 a) (mdscr_el1 a) (sp_el0 a) (tpidr_el0 a) (tpidrro_el0 a) (spsr_el2 a) (vmpidr_el2 a)
(mpidr_el1 a) (actlr_el1 a) (sp_el1 a) (elr_el1 a) (elr_el2 a) (vttbr_el2 a) (hcr_el2 a) (tpidr_el2 a)
(esr_el2 a) (ec a) (far_el2 a) (hpfar_el2 a).
Notation "a {fp_fpsr : b }" := (update_fp_fpsr a b) (at level 1).
Definition update_fp_fpcr (a: CtxtRegs) b :=
mkCtxtRegs (x0 a) (x1 a) (x2 a) (x3 a) (x4 a) (x5 a) (x6 a) (x7 a)
(x8 a) (x9 a) (x10 a) (x11 a) (x12 a) (x13 a) (x14 a) (x15 a)
(x16 a) (x17 a) (x18 a) (x19 a) (x20 a) (x21 a) (x22 a) (x23 a)
(x24 a) (x25 a) (x26 a) (x27 a) (x28 a) (x29 a) (x30 a) (fp_q0 a)
(fp_q1 a) (fp_q2 a) (fp_q3 a) (fp_q4 a) (fp_q5 a) (fp_q6 a) (fp_q7 a) (fp_q8 a)
(fp_q9 a) (fp_q10 a) (fp_q11 a) (fp_q12 a) (fp_q13 a) (fp_q14 a) (fp_q15 a) (fp_q16 a)
(fp_q17 a) (fp_q18 a) (fp_q19 a) (fp_q20 a) (fp_q21 a) (fp_q22 a) (fp_q23 a) (fp_q24 a)
(fp_q25 a) (fp_q26 a) (fp_q27 a) (fp_q28 a) (fp_q29 a) (fp_q30 a) (fp_q31 a) (fp_fpsr a)
b (csselr_el1 a) (sctlr_el1 a) (cpacr_el1 a) (ttbr0_el1 a) (ttbr1_el1 a) (tcr_el1 a) (afsr0_el1 a)
(afsr1_el1 a) (far_el1 a) (mair_el1 a) (vbar_el1 a) (contextidr_el1 a) (amair_el1 a) (cntkctl_el1 a) (par_el1 a)
(tpidr_el1 a) (spsr_el1 a) (mdscr_el1 a) (sp_el0 a) (tpidr_el0 a) (tpidrro_el0 a) (spsr_el2 a) (vmpidr_el2 a)
(mpidr_el1 a) (actlr_el1 a) (sp_el1 a) (elr_el1 a) (elr_el2 a) (vttbr_el2 a) (hcr_el2 a) (tpidr_el2 a)
(esr_el2 a) (ec a) (far_el2 a) (hpfar_el2 a).
Notation "a {fp_fpcr : b }" := (update_fp_fpcr a b) (at level 1).
Definition update_csselr_el1 (a: CtxtRegs) b :=
mkCtxtRegs (x0 a) (x1 a) (x2 a) (x3 a) (x4 a) (x5 a) (x6 a) (x7 a)
(x8 a) (x9 a) (x10 a) (x11 a) (x12 a) (x13 a) (x14 a) (x15 a)
(x16 a) (x17 a) (x18 a) (x19 a) (x20 a) (x21 a) (x22 a) (x23 a)
(x24 a) (x25 a) (x26 a) (x27 a) (x28 a) (x29 a) (x30 a) (fp_q0 a)
(fp_q1 a) (fp_q2 a) (fp_q3 a) (fp_q4 a) (fp_q5 a) (fp_q6 a) (fp_q7 a) (fp_q8 a)
(fp_q9 a) (fp_q10 a) (fp_q11 a) (fp_q12 a) (fp_q13 a) (fp_q14 a) (fp_q15 a) (fp_q16 a)
(fp_q17 a) (fp_q18 a) (fp_q19 a) (fp_q20 a) (fp_q21 a) (fp_q22 a) (fp_q23 a) (fp_q24 a)
(fp_q25 a) (fp_q26 a) (fp_q27 a) (fp_q28 a) (fp_q29 a) (fp_q30 a) (fp_q31 a) (fp_fpsr a)
(fp_fpcr a) b (sctlr_el1 a) (cpacr_el1 a) (ttbr0_el1 a) (ttbr1_el1 a) (tcr_el1 a) (afsr0_el1 a)
(afsr1_el1 a) (far_el1 a) (mair_el1 a) (vbar_el1 a) (contextidr_el1 a) (amair_el1 a) (cntkctl_el1 a) (par_el1 a)
(tpidr_el1 a) (spsr_el1 a) (mdscr_el1 a) (sp_el0 a) (tpidr_el0 a) (tpidrro_el0 a) (spsr_el2 a) (vmpidr_el2 a)
(mpidr_el1 a) (actlr_el1 a) (sp_el1 a) (elr_el1 a) (elr_el2 a) (vttbr_el2 a) (hcr_el2 a) (tpidr_el2 a)
(esr_el2 a) (ec a) (far_el2 a) (hpfar_el2 a).
Notation "a {csselr_el1 : b }" := (update_csselr_el1 a b) (at level 1).
Definition update_sctlr_el1 (a: CtxtRegs) b :=
mkCtxtRegs (x0 a) (x1 a) (x2 a) (x3 a) (x4 a) (x5 a) (x6 a) (x7 a)
(x8 a) (x9 a) (x10 a) (x11 a) (x12 a) (x13 a) (x14 a) (x15 a)
(x16 a) (x17 a) (x18 a) (x19 a) (x20 a) (x21 a) (x22 a) (x23 a)
(x24 a) (x25 a) (x26 a) (x27 a) (x28 a) (x29 a) (x30 a) (fp_q0 a)
(fp_q1 a) (fp_q2 a) (fp_q3 a) (fp_q4 a) (fp_q5 a) (fp_q6 a) (fp_q7 a) (fp_q8 a)
(fp_q9 a) (fp_q10 a) (fp_q11 a) (fp_q12 a) (fp_q13 a) (fp_q14 a) (fp_q15 a) (fp_q16 a)
(fp_q17 a) (fp_q18 a) (fp_q19 a) (fp_q20 a) (fp_q21 a) (fp_q22 a) (fp_q23 a) (fp_q24 a)
(fp_q25 a) (fp_q26 a) (fp_q27 a) (fp_q28 a) (fp_q29 a) (fp_q30 a) (fp_q31 a) (fp_fpsr a)
(fp_fpcr a) (csselr_el1 a) b (cpacr_el1 a) (ttbr0_el1 a) (ttbr1_el1 a) (tcr_el1 a) (afsr0_el1 a)
(afsr1_el1 a) (far_el1 a) (mair_el1 a) (vbar_el1 a) (contextidr_el1 a) (amair_el1 a) (cntkctl_el1 a) (par_el1 a)
(tpidr_el1 a) (spsr_el1 a) (mdscr_el1 a) (sp_el0 a) (tpidr_el0 a) (tpidrro_el0 a) (spsr_el2 a) (vmpidr_el2 a)
(mpidr_el1 a) (actlr_el1 a) (sp_el1 a) (elr_el1 a) (elr_el2 a) (vttbr_el2 a) (hcr_el2 a) (tpidr_el2 a)
(esr_el2 a) (ec a) (far_el2 a) (hpfar_el2 a).
Notation "a {sctlr_el1 : b }" := (update_sctlr_el1 a b) (at level 1).
Definition update_cpacr_el1 (a: CtxtRegs) b :=
mkCtxtRegs (x0 a) (x1 a) (x2 a) (x3 a) (x4 a) (x5 a) (x6 a) (x7 a)
(x8 a) (x9 a) (x10 a) (x11 a) (x12 a) (x13 a) (x14 a) (x15 a)
(x16 a) (x17 a) (x18 a) (x19 a) (x20 a) (x21 a) (x22 a) (x23 a)
(x24 a) (x25 a) (x26 a) (x27 a) (x28 a) (x29 a) (x30 a) (fp_q0 a)
(fp_q1 a) (fp_q2 a) (fp_q3 a) (fp_q4 a) (fp_q5 a) (fp_q6 a) (fp_q7 a) (fp_q8 a)
(fp_q9 a) (fp_q10 a) (fp_q11 a) (fp_q12 a) (fp_q13 a) (fp_q14 a) (fp_q15 a) (fp_q16 a)
(fp_q17 a) (fp_q18 a) (fp_q19 a) (fp_q20 a) (fp_q21 a) (fp_q22 a) (fp_q23 a) (fp_q24 a)
(fp_q25 a) (fp_q26 a) (fp_q27 a) (fp_q28 a) (fp_q29 a) (fp_q30 a) (fp_q31 a) (fp_fpsr a)
(fp_fpcr a) (csselr_el1 a) (sctlr_el1 a) b (ttbr0_el1 a) (ttbr1_el1 a) (tcr_el1 a) (afsr0_el1 a)
(afsr1_el1 a) (far_el1 a) (mair_el1 a) (vbar_el1 a) (contextidr_el1 a) (amair_el1 a) (cntkctl_el1 a) (par_el1 a)
(tpidr_el1 a) (spsr_el1 a) (mdscr_el1 a) (sp_el0 a) (tpidr_el0 a) (tpidrro_el0 a) (spsr_el2 a) (vmpidr_el2 a)
(mpidr_el1 a) (actlr_el1 a) (sp_el1 a) (elr_el1 a) (elr_el2 a) (vttbr_el2 a) (hcr_el2 a) (tpidr_el2 a)
(esr_el2 a) (ec a) (far_el2 a) (hpfar_el2 a).
Notation "a {cpacr_el1 : b }" := (update_cpacr_el1 a b) (at level 1).
Definition update_ttbr0_el1 (a: CtxtRegs) b :=
mkCtxtRegs (x0 a) (x1 a) (x2 a) (x3 a) (x4 a) (x5 a) (x6 a) (x7 a)
(x8 a) (x9 a) (x10 a) (x11 a) (x12 a) (x13 a) (x14 a) (x15 a)
(x16 a) (x17 a) (x18 a) (x19 a) (x20 a) (x21 a) (x22 a) (x23 a)
(x24 a) (x25 a) (x26 a) (x27 a) (x28 a) (x29 a) (x30 a) (fp_q0 a)
(fp_q1 a) (fp_q2 a) (fp_q3 a) (fp_q4 a) (fp_q5 a) (fp_q6 a) (fp_q7 a) (fp_q8 a)
(fp_q9 a) (fp_q10 a) (fp_q11 a) (fp_q12 a) (fp_q13 a) (fp_q14 a) (fp_q15 a) (fp_q16 a)
(fp_q17 a) (fp_q18 a) (fp_q19 a) (fp_q20 a) (fp_q21 a) (fp_q22 a) (fp_q23 a) (fp_q24 a)
(fp_q25 a) (fp_q26 a) (fp_q27 a) (fp_q28 a) (fp_q29 a) (fp_q30 a) (fp_q31 a) (fp_fpsr a)
(fp_fpcr a) (csselr_el1 a) (sctlr_el1 a) (cpacr_el1 a) b (ttbr1_el1 a) (tcr_el1 a) (afsr0_el1 a)
(afsr1_el1 a) (far_el1 a) (mair_el1 a) (vbar_el1 a) (contextidr_el1 a) (amair_el1 a) (cntkctl_el1 a) (par_el1 a)
(tpidr_el1 a) (spsr_el1 a) (mdscr_el1 a) (sp_el0 a) (tpidr_el0 a) (tpidrro_el0 a) (spsr_el2 a) (vmpidr_el2 a)
(mpidr_el1 a) (actlr_el1 a) (sp_el1 a) (elr_el1 a) (elr_el2 a) (vttbr_el2 a) (hcr_el2 a) (tpidr_el2 a)
(esr_el2 a) (ec a) (far_el2 a) (hpfar_el2 a).
Notation "a {ttbr0_el1 : b }" := (update_ttbr0_el1 a b) (at level 1).
Definition update_ttbr1_el1 (a: CtxtRegs) b :=
mkCtxtRegs (x0 a) (x1 a) (x2 a) (x3 a) (x4 a) (x5 a) (x6 a) (x7 a)
(x8 a) (x9 a) (x10 a) (x11 a) (x12 a) (x13 a) (x14 a) (x15 a)
(x16 a) (x17 a) (x18 a) (x19 a) (x20 a) (x21 a) (x22 a) (x23 a)
(x24 a) (x25 a) (x26 a) (x27 a) (x28 a) (x29 a) (x30 a) (fp_q0 a)
(fp_q1 a) (fp_q2 a) (fp_q3 a) (fp_q4 a) (fp_q5 a) (fp_q6 a) (fp_q7 a) (fp_q8 a)
(fp_q9 a) (fp_q10 a) (fp_q11 a) (fp_q12 a) (fp_q13 a) (fp_q14 a) (fp_q15 a) (fp_q16 a)
(fp_q17 a) (fp_q18 a) (fp_q19 a) (fp_q20 a) (fp_q21 a) (fp_q22 a) (fp_q23 a) (fp_q24 a)
(fp_q25 a) (fp_q26 a) (fp_q27 a) (fp_q28 a) (fp_q29 a) (fp_q30 a) (fp_q31 a) (fp_fpsr a)
(fp_fpcr a) (csselr_el1 a) (sctlr_el1 a) (cpacr_el1 a) (ttbr0_el1 a) b (tcr_el1 a) (afsr0_el1 a)
(afsr1_el1 a) (far_el1 a) (mair_el1 a) (vbar_el1 a) (contextidr_el1 a) (amair_el1 a) (cntkctl_el1 a) (par_el1 a)
(tpidr_el1 a) (spsr_el1 a) (mdscr_el1 a) (sp_el0 a) (tpidr_el0 a) (tpidrro_el0 a) (spsr_el2 a) (vmpidr_el2 a)
(mpidr_el1 a) (actlr_el1 a) (sp_el1 a) (elr_el1 a) (elr_el2 a) (vttbr_el2 a) (hcr_el2 a) (tpidr_el2 a)
(esr_el2 a) (ec a) (far_el2 a) (hpfar_el2 a).
Notation "a {ttbr1_el1 : b }" := (update_ttbr1_el1 a b) (at level 1).
Definition update_tcr_el1 (a: CtxtRegs) b :=
mkCtxtRegs (x0 a) (x1 a) (x2 a) (x3 a) (x4 a) (x5 a) (x6 a) (x7 a)
(x8 a) (x9 a) (x10 a) (x11 a) (x12 a) (x13 a) (x14 a) (x15 a)
(x16 a) (x17 a) (x18 a) (x19 a) (x20 a) (x21 a) (x22 a) (x23 a)
(x24 a) (x25 a) (x26 a) (x27 a) (x28 a) (x29 a) (x30 a) (fp_q0 a)
(fp_q1 a) (fp_q2 a) (fp_q3 a) (fp_q4 a) (fp_q5 a) (fp_q6 a) (fp_q7 a) (fp_q8 a)
(fp_q9 a) (fp_q10 a) (fp_q11 a) (fp_q12 a) (fp_q13 a) (fp_q14 a) (fp_q15 a) (fp_q16 a)
(fp_q17 a) (fp_q18 a) (fp_q19 a) (fp_q20 a) (fp_q21 a) (fp_q22 a) (fp_q23 a) (fp_q24 a)
(fp_q25 a) (fp_q26 a) (fp_q27 a) (fp_q28 a) (fp_q29 a) (fp_q30 a) (fp_q31 a) (fp_fpsr a)
(fp_fpcr a) (csselr_el1 a) (sctlr_el1 a) (cpacr_el1 a) (ttbr0_el1 a) (ttbr1_el1 a) b (afsr0_el1 a)
(afsr1_el1 a) (far_el1 a) (mair_el1 a) (vbar_el1 a) (contextidr_el1 a) (amair_el1 a) (cntkctl_el1 a) (par_el1 a)
(tpidr_el1 a) (spsr_el1 a) (mdscr_el1 a) (sp_el0 a) (tpidr_el0 a) (tpidrro_el0 a) (spsr_el2 a) (vmpidr_el2 a)
(mpidr_el1 a) (actlr_el1 a) (sp_el1 a) (elr_el1 a) (elr_el2 a) (vttbr_el2 a) (hcr_el2 a) (tpidr_el2 a)
(esr_el2 a) (ec a) (far_el2 a) (hpfar_el2 a).
Notation "a {tcr_el1 : b }" := (update_tcr_el1 a b) (at level 1).
Definition update_afsr0_el1 (a: CtxtRegs) b :=
mkCtxtRegs (x0 a) (x1 a) (x2 a) (x3 a) (x4 a) (x5 a) (x6 a) (x7 a)
(x8 a) (x9 a) (x10 a) (x11 a) (x12 a) (x13 a) (x14 a) (x15 a)
(x16 a) (x17 a) (x18 a) (x19 a) (x20 a) (x21 a) (x22 a) (x23 a)
(x24 a) (x25 a) (x26 a) (x27 a) (x28 a) (x29 a) (x30 a) (fp_q0 a)
(fp_q1 a) (fp_q2 a) (fp_q3 a) (fp_q4 a) (fp_q5 a) (fp_q6 a) (fp_q7 a) (fp_q8 a)
(fp_q9 a) (fp_q10 a) (fp_q11 a) (fp_q12 a) (fp_q13 a) (fp_q14 a) (fp_q15 a) (fp_q16 a)
(fp_q17 a) (fp_q18 a) (fp_q19 a) (fp_q20 a) (fp_q21 a) (fp_q22 a) (fp_q23 a) (fp_q24 a)
(fp_q25 a) (fp_q26 a) (fp_q27 a) (fp_q28 a) (fp_q29 a) (fp_q30 a) (fp_q31 a) (fp_fpsr a)
(fp_fpcr a) (csselr_el1 a) (sctlr_el1 a) (cpacr_el1 a) (ttbr0_el1 a) (ttbr1_el1 a) (tcr_el1 a) b
(afsr1_el1 a) (far_el1 a) (mair_el1 a) (vbar_el1 a) (contextidr_el1 a) (amair_el1 a) (cntkctl_el1 a) (par_el1 a)
(tpidr_el1 a) (spsr_el1 a) (mdscr_el1 a) (sp_el0 a) (tpidr_el0 a) (tpidrro_el0 a) (spsr_el2 a) (vmpidr_el2 a)
(mpidr_el1 a) (actlr_el1 a) (sp_el1 a) (elr_el1 a) (elr_el2 a) (vttbr_el2 a) (hcr_el2 a) (tpidr_el2 a)
(esr_el2 a) (ec a) (far_el2 a) (hpfar_el2 a).
Notation "a {afsr0_el1 : b }" := (update_afsr0_el1 a b) (at level 1).
Definition update_afsr1_el1 (a: CtxtRegs) b :=
mkCtxtRegs (x0 a) (x1 a) (x2 a) (x3 a) (x4 a) (x5 a) (x6 a) (x7 a)
(x8 a) (x9 a) (x10 a) (x11 a) (x12 a) (x13 a) (x14 a) (x15 a)
(x16 a) (x17 a) (x18 a) (x19 a) (x20 a) (x21 a) (x22 a) (x23 a)
(x24 a) (x25 a) (x26 a) (x27 a) (x28 a) (x29 a) (x30 a) (fp_q0 a)
(fp_q1 a) (fp_q2 a) (fp_q3 a) (fp_q4 a) (fp_q5 a) (fp_q6 a) (fp_q7 a) (fp_q8 a)
(fp_q9 a) (fp_q10 a) (fp_q11 a) (fp_q12 a) (fp_q13 a) (fp_q14 a) (fp_q15 a) (fp_q16 a)
(fp_q17 a) (fp_q18 a) (fp_q19 a) (fp_q20 a) (fp_q21 a) (fp_q22 a) (fp_q23 a) (fp_q24 a)
(fp_q25 a) (fp_q26 a) (fp_q27 a) (fp_q28 a) (fp_q29 a) (fp_q30 a) (fp_q31 a) (fp_fpsr a)
(fp_fpcr a) (csselr_el1 a) (sctlr_el1 a) (cpacr_el1 a) (ttbr0_el1 a) (ttbr1_el1 a) (tcr_el1 a) (afsr0_el1 a)
b (far_el1 a) (mair_el1 a) (vbar_el1 a) (contextidr_el1 a) (amair_el1 a) (cntkctl_el1 a) (par_el1 a)
(tpidr_el1 a) (spsr_el1 a) (mdscr_el1 a) (sp_el0 a) (tpidr_el0 a) (tpidrro_el0 a) (spsr_el2 a) (vmpidr_el2 a)
(mpidr_el1 a) (actlr_el1 a) (sp_el1 a) (elr_el1 a) (elr_el2 a) (vttbr_el2 a) (hcr_el2 a) (tpidr_el2 a)
(esr_el2 a) (ec a) (far_el2 a) (hpfar_el2 a).
Notation "a {afsr1_el1 : b }" := (update_afsr1_el1 a b) (at level 1).
Definition update_far_el1 (a: CtxtRegs) b :=
mkCtxtRegs (x0 a) (x1 a) (x2 a) (x3 a) (x4 a) (x5 a) (x6 a) (x7 a)
(x8 a) (x9 a) (x10 a) (x11 a) (x12 a) (x13 a) (x14 a) (x15 a)
(x16 a) (x17 a) (x18 a) (x19 a) (x20 a) (x21 a) (x22 a) (x23 a)
(x24 a) (x25 a) (x26 a) (x27 a) (x28 a) (x29 a) (x30 a) (fp_q0 a)
(fp_q1 a) (fp_q2 a) (fp_q3 a) (fp_q4 a) (fp_q5 a) (fp_q6 a) (fp_q7 a) (fp_q8 a)
(fp_q9 a) (fp_q10 a) (fp_q11 a) (fp_q12 a) (fp_q13 a) (fp_q14 a) (fp_q15 a) (fp_q16 a)
(fp_q17 a) (fp_q18 a) (fp_q19 a) (fp_q20 a) (fp_q21 a) (fp_q22 a) (fp_q23 a) (fp_q24 a)
(fp_q25 a) (fp_q26 a) (fp_q27 a) (fp_q28 a) (fp_q29 a) (fp_q30 a) (fp_q31 a) (fp_fpsr a)
(fp_fpcr a) (csselr_el1 a) (sctlr_el1 a) (cpacr_el1 a) (ttbr0_el1 a) (ttbr1_el1 a) (tcr_el1 a) (afsr0_el1 a)
(afsr1_el1 a) b (mair_el1 a) (vbar_el1 a) (contextidr_el1 a) (amair_el1 a) (cntkctl_el1 a) (par_el1 a)
(tpidr_el1 a) (spsr_el1 a) (mdscr_el1 a) (sp_el0 a) (tpidr_el0 a) (tpidrro_el0 a) (spsr_el2 a) (vmpidr_el2 a)
(mpidr_el1 a) (actlr_el1 a) (sp_el1 a) (elr_el1 a) (elr_el2 a) (vttbr_el2 a) (hcr_el2 a) (tpidr_el2 a)
(esr_el2 a) (ec a) (far_el2 a) (hpfar_el2 a).
Notation "a {far_el1 : b }" := (update_far_el1 a b) (at level 1).
Definition update_mair_el1 (a: CtxtRegs) b :=
mkCtxtRegs (x0 a) (x1 a) (x2 a) (x3 a) (x4 a) (x5 a) (x6 a) (x7 a)
(x8 a) (x9 a) (x10 a) (x11 a) (x12 a) (x13 a) (x14 a) (x15 a)
(x16 a) (x17 a) (x18 a) (x19 a) (x20 a) (x21 a) (x22 a) (x23 a)
(x24 a) (x25 a) (x26 a) (x27 a) (x28 a) (x29 a) (x30 a) (fp_q0 a)
(fp_q1 a) (fp_q2 a) (fp_q3 a) (fp_q4 a) (fp_q5 a) (fp_q6 a) (fp_q7 a) (fp_q8 a)
(fp_q9 a) (fp_q10 a) (fp_q11 a) (fp_q12 a) (fp_q13 a) (fp_q14 a) (fp_q15 a) (fp_q16 a)
(fp_q17 a) (fp_q18 a) (fp_q19 a) (fp_q20 a) (fp_q21 a) (fp_q22 a) (fp_q23 a) (fp_q24 a)
(fp_q25 a) (fp_q26 a) (fp_q27 a) (fp_q28 a) (fp_q29 a) (fp_q30 a) (fp_q31 a) (fp_fpsr a)
(fp_fpcr a) (csselr_el1 a) (sctlr_el1 a) (cpacr_el1 a) (ttbr0_el1 a) (ttbr1_el1 a) (tcr_el1 a) (afsr0_el1 a)
(afsr1_el1 a) (far_el1 a) b (vbar_el1 a) (contextidr_el1 a) (amair_el1 a) (cntkctl_el1 a) (par_el1 a)
(tpidr_el1 a) (spsr_el1 a) (mdscr_el1 a) (sp_el0 a) (tpidr_el0 a) (tpidrro_el0 a) (spsr_el2 a) (vmpidr_el2 a)
(mpidr_el1 a) (actlr_el1 a) (sp_el1 a) (elr_el1 a) (elr_el2 a) (vttbr_el2 a) (hcr_el2 a) (tpidr_el2 a)
(esr_el2 a) (ec a) (far_el2 a) (hpfar_el2 a).
Notation "a {mair_el1 : b }" := (update_mair_el1 a b) (at level 1).
Definition update_vbar_el1 (a: CtxtRegs) b :=
mkCtxtRegs (x0 a) (x1 a) (x2 a) (x3 a) (x4 a) (x5 a) (x6 a) (x7 a)
(x8 a) (x9 a) (x10 a) (x11 a) (x12 a) (x13 a) (x14 a) (x15 a)
(x16 a) (x17 a) (x18 a) (x19 a) (x20 a) (x21 a) (x22 a) (x23 a)
(x24 a) (x25 a) (x26 a) (x27 a) (x28 a) (x29 a) (x30 a) (fp_q0 a)
(fp_q1 a) (fp_q2 a) (fp_q3 a) (fp_q4 a) (fp_q5 a) (fp_q6 a) (fp_q7 a) (fp_q8 a)
(fp_q9 a) (fp_q10 a) (fp_q11 a) (fp_q12 a) (fp_q13 a) (fp_q14 a) (fp_q15 a) (fp_q16 a)
(fp_q17 a) (fp_q18 a) (fp_q19 a) (fp_q20 a) (fp_q21 a) (fp_q22 a) (fp_q23 a) (fp_q24 a)
(fp_q25 a) (fp_q26 a) (fp_q27 a) (fp_q28 a) (fp_q29 a) (fp_q30 a) (fp_q31 a) (fp_fpsr a)
(fp_fpcr a) (csselr_el1 a) (sctlr_el1 a) (cpacr_el1 a) (ttbr0_el1 a) (ttbr1_el1 a) (tcr_el1 a) (afsr0_el1 a)
(afsr1_el1 a) (far_el1 a) (mair_el1 a) b (contextidr_el1 a) (amair_el1 a) (cntkctl_el1 a) (par_el1 a)
(tpidr_el1 a) (spsr_el1 a) (mdscr_el1 a) (sp_el0 a) (tpidr_el0 a) (tpidrro_el0 a) (spsr_el2 a) (vmpidr_el2 a)
(mpidr_el1 a) (actlr_el1 a) (sp_el1 a) (elr_el1 a) (elr_el2 a) (vttbr_el2 a) (hcr_el2 a) (tpidr_el2 a)
(esr_el2 a) (ec a) (far_el2 a) (hpfar_el2 a).
Notation "a {vbar_el1 : b }" := (update_vbar_el1 a b) (at level 1).
Definition update_contextidr_el1 (a: CtxtRegs) b :=
mkCtxtRegs (x0 a) (x1 a) (x2 a) (x3 a) (x4 a) (x5 a) (x6 a) (x7 a)
(x8 a) (x9 a) (x10 a) (x11 a) (x12 a) (x13 a) (x14 a) (x15 a)
(x16 a) (x17 a) (x18 a) (x19 a) (x20 a) (x21 a) (x22 a) (x23 a)
(x24 a) (x25 a) (x26 a) (x27 a) (x28 a) (x29 a) (x30 a) (fp_q0 a)
(fp_q1 a) (fp_q2 a) (fp_q3 a) (fp_q4 a) (fp_q5 a) (fp_q6 a) (fp_q7 a) (fp_q8 a)
(fp_q9 a) (fp_q10 a) (fp_q11 a) (fp_q12 a) (fp_q13 a) (fp_q14 a) (fp_q15 a) (fp_q16 a)
(fp_q17 a) (fp_q18 a) (fp_q19 a) (fp_q20 a) (fp_q21 a) (fp_q22 a) (fp_q23 a) (fp_q24 a)
(fp_q25 a) (fp_q26 a) (fp_q27 a) (fp_q28 a) (fp_q29 a) (fp_q30 a) (fp_q31 a) (fp_fpsr a)
(fp_fpcr a) (csselr_el1 a) (sctlr_el1 a) (cpacr_el1 a) (ttbr0_el1 a) (ttbr1_el1 a) (tcr_el1 a) (afsr0_el1 a)
(afsr1_el1 a) (far_el1 a) (mair_el1 a) (vbar_el1 a) b (amair_el1 a) (cntkctl_el1 a) (par_el1 a)
(tpidr_el1 a) (spsr_el1 a) (mdscr_el1 a) (sp_el0 a) (tpidr_el0 a) (tpidrro_el0 a) (spsr_el2 a) (vmpidr_el2 a)
(mpidr_el1 a) (actlr_el1 a) (sp_el1 a) (elr_el1 a) (elr_el2 a) (vttbr_el2 a) (hcr_el2 a) (tpidr_el2 a)
(esr_el2 a) (ec a) (far_el2 a) (hpfar_el2 a).
Notation "a {contextidr_el1 : b }" := (update_contextidr_el1 a b) (at level 1).
Definition update_amair_el1 (a: CtxtRegs) b :=
mkCtxtRegs (x0 a) (x1 a) (x2 a) (x3 a) (x4 a) (x5 a) (x6 a) (x7 a)
(x8 a) (x9 a) (x10 a) (x11 a) (x12 a) (x13 a) (x14 a) (x15 a)
(x16 a) (x17 a) (x18 a) (x19 a) (x20 a) (x21 a) (x22 a) (x23 a)
(x24 a) (x25 a) (x26 a) (x27 a) (x28 a) (x29 a) (x30 a) (fp_q0 a)
(fp_q1 a) (fp_q2 a) (fp_q3 a) (fp_q4 a) (fp_q5 a) (fp_q6 a) (fp_q7 a) (fp_q8 a)
(fp_q9 a) (fp_q10 a) (fp_q11 a) (fp_q12 a) (fp_q13 a) (fp_q14 a) (fp_q15 a) (fp_q16 a)
(fp_q17 a) (fp_q18 a) (fp_q19 a) (fp_q20 a) (fp_q21 a) (fp_q22 a) (fp_q23 a) (fp_q24 a)
(fp_q25 a) (fp_q26 a) (fp_q27 a) (fp_q28 a) (fp_q29 a) (fp_q30 a) (fp_q31 a) (fp_fpsr a)
(fp_fpcr a) (csselr_el1 a) (sctlr_el1 a) (cpacr_el1 a) (ttbr0_el1 a) (ttbr1_el1 a) (tcr_el1 a) (afsr0_el1 a)
(afsr1_el1 a) (far_el1 a) (mair_el1 a) (vbar_el1 a) (contextidr_el1 a) b (cntkctl_el1 a) (par_el1 a)
(tpidr_el1 a) (spsr_el1 a) (mdscr_el1 a) (sp_el0 a) (tpidr_el0 a) (tpidrro_el0 a) (spsr_el2 a) (vmpidr_el2 a)
(mpidr_el1 a) (actlr_el1 a) (sp_el1 a) (elr_el1 a) (elr_el2 a) (vttbr_el2 a) (hcr_el2 a) (tpidr_el2 a)
(esr_el2 a) (ec a) (far_el2 a) (hpfar_el2 a).
Notation "a {amair_el1 : b }" := (update_amair_el1 a b) (at level 1).
Definition update_cntkctl_el1 (a: CtxtRegs) b :=
mkCtxtRegs (x0 a) (x1 a) (x2 a) (x3 a) (x4 a) (x5 a) (x6 a) (x7 a)
(x8 a) (x9 a) (x10 a) (x11 a) (x12 a) (x13 a) (x14 a) (x15 a)
(x16 a) (x17 a) (x18 a) (x19 a) (x20 a) (x21 a) (x22 a) (x23 a)
(x24 a) (x25 a) (x26 a) (x27 a) (x28 a) (x29 a) (x30 a) (fp_q0 a)
(fp_q1 a) (fp_q2 a) (fp_q3 a) (fp_q4 a) (fp_q5 a) (fp_q6 a) (fp_q7 a) (fp_q8 a)
(fp_q9 a) (fp_q10 a) (fp_q11 a) (fp_q12 a) (fp_q13 a) (fp_q14 a) (fp_q15 a) (fp_q16 a)
(fp_q17 a) (fp_q18 a) (fp_q19 a) (fp_q20 a) (fp_q21 a) (fp_q22 a) (fp_q23 a) (fp_q24 a)
(fp_q25 a) (fp_q26 a) (fp_q27 a) (fp_q28 a) (fp_q29 a) (fp_q30 a) (fp_q31 a) (fp_fpsr a)
(fp_fpcr a) (csselr_el1 a) (sctlr_el1 a) (cpacr_el1 a) (ttbr0_el1 a) (ttbr1_el1 a) (tcr_el1 a) (afsr0_el1 a)
(afsr1_el1 a) (far_el1 a) (mair_el1 a) (vbar_el1 a) (contextidr_el1 a) (amair_el1 a) b (par_el1 a)
(tpidr_el1 a) (spsr_el1 a) (mdscr_el1 a) (sp_el0 a) (tpidr_el0 a) (tpidrro_el0 a) (spsr_el2 a) (vmpidr_el2 a)
(mpidr_el1 a) (actlr_el1 a) (sp_el1 a) (elr_el1 a) (elr_el2 a) (vttbr_el2 a) (hcr_el2 a) (tpidr_el2 a)
(esr_el2 a) (ec a) (far_el2 a) (hpfar_el2 a).
Notation "a {cntkctl_el1 : b }" := (update_cntkctl_el1 a b) (at level 1).
Definition update_par_el1 (a: CtxtRegs) b :=
mkCtxtRegs (x0 a) (x1 a) (x2 a) (x3 a) (x4 a) (x5 a) (x6 a) (x7 a)
(x8 a) (x9 a) (x10 a) (x11 a) (x12 a) (x13 a) (x14 a) (x15 a)
(x16 a) (x17 a) (x18 a) (x19 a) (x20 a) (x21 a) (x22 a) (x23 a)
(x24 a) (x25 a) (x26 a) (x27 a) (x28 a) (x29 a) (x30 a) (fp_q0 a)
(fp_q1 a) (fp_q2 a) (fp_q3 a) (fp_q4 a) (fp_q5 a) (fp_q6 a) (fp_q7 a) (fp_q8 a)
(fp_q9 a) (fp_q10 a) (fp_q11 a) (fp_q12 a) (fp_q13 a) (fp_q14 a) (fp_q15 a) (fp_q16 a)
(fp_q17 a) (fp_q18 a) (fp_q19 a) (fp_q20 a) (fp_q21 a) (fp_q22 a) (fp_q23 a) (fp_q24 a)
(fp_q25 a) (fp_q26 a) (fp_q27 a) (fp_q28 a) (fp_q29 a) (fp_q30 a) (fp_q31 a) (fp_fpsr a)
(fp_fpcr a) (csselr_el1 a) (sctlr_el1 a) (cpacr_el1 a) (ttbr0_el1 a) (ttbr1_el1 a) (tcr_el1 a) (afsr0_el1 a)
(afsr1_el1 a) (far_el1 a) (mair_el1 a) (vbar_el1 a) (contextidr_el1 a) (amair_el1 a) (cntkctl_el1 a) b
(tpidr_el1 a) (spsr_el1 a) (mdscr_el1 a) (sp_el0 a) (tpidr_el0 a) (tpidrro_el0 a) (spsr_el2 a) (vmpidr_el2 a)
(mpidr_el1 a) (actlr_el1 a) (sp_el1 a) (elr_el1 a) (elr_el2 a) (vttbr_el2 a) (hcr_el2 a) (tpidr_el2 a)
(esr_el2 a) (ec a) (far_el2 a) (hpfar_el2 a).
Notation "a {par_el1 : b }" := (update_par_el1 a b) (at level 1).
Definition update_tpidr_el1 (a: CtxtRegs) b :=
mkCtxtRegs (x0 a) (x1 a) (x2 a) (x3 a) (x4 a) (x5 a) (x6 a) (x7 a)
(x8 a) (x9 a) (x10 a) (x11 a) (x12 a) (x13 a) (x14 a) (x15 a)
(x16 a) (x17 a) (x18 a) (x19 a) (x20 a) (x21 a) (x22 a) (x23 a)
(x24 a) (x25 a) (x26 a) (x27 a) (x28 a) (x29 a) (x30 a) (fp_q0 a)
(fp_q1 a) (fp_q2 a) (fp_q3 a) (fp_q4 a) (fp_q5 a) (fp_q6 a) (fp_q7 a) (fp_q8 a)
(fp_q9 a) (fp_q10 a) (fp_q11 a) (fp_q12 a) (fp_q13 a) (fp_q14 a) (fp_q15 a) (fp_q16 a)
(fp_q17 a) (fp_q18 a) (fp_q19 a) (fp_q20 a) (fp_q21 a) (fp_q22 a) (fp_q23 a) (fp_q24 a)
(fp_q25 a) (fp_q26 a) (fp_q27 a) (fp_q28 a) (fp_q29 a) (fp_q30 a) (fp_q31 a) (fp_fpsr a)
(fp_fpcr a) (csselr_el1 a) (sctlr_el1 a) (cpacr_el1 a) (ttbr0_el1 a) (ttbr1_el1 a) (tcr_el1 a) (afsr0_el1 a)
(afsr1_el1 a) (far_el1 a) (mair_el1 a) (vbar_el1 a) (contextidr_el1 a) (amair_el1 a) (cntkctl_el1 a) (par_el1 a)
b (spsr_el1 a) (mdscr_el1 a) (sp_el0 a) (tpidr_el0 a) (tpidrro_el0 a) (spsr_el2 a) (vmpidr_el2 a)
(mpidr_el1 a) (actlr_el1 a) (sp_el1 a) (elr_el1 a) (elr_el2 a) (vttbr_el2 a) (hcr_el2 a) (tpidr_el2 a)
(esr_el2 a) (ec a) (far_el2 a) (hpfar_el2 a).
Notation "a {tpidr_el1 : b }" := (update_tpidr_el1 a b) (at level 1).
Definition update_spsr_el1 (a: CtxtRegs) b :=
mkCtxtRegs (x0 a) (x1 a) (x2 a) (x3 a) (x4 a) (x5 a) (x6 a) (x7 a)
(x8 a) (x9 a) (x10 a) (x11 a) (x12 a) (x13 a) (x14 a) (x15 a)
(x16 a) (x17 a) (x18 a) (x19 a) (x20 a) (x21 a) (x22 a) (x23 a)
(x24 a) (x25 a) (x26 a) (x27 a) (x28 a) (x29 a) (x30 a) (fp_q0 a)
(fp_q1 a) (fp_q2 a) (fp_q3 a) (fp_q4 a) (fp_q5 a) (fp_q6 a) (fp_q7 a) (fp_q8 a)
(fp_q9 a) (fp_q10 a) (fp_q11 a) (fp_q12 a) (fp_q13 a) (fp_q14 a) (fp_q15 a) (fp_q16 a)
(fp_q17 a) (fp_q18 a) (fp_q19 a) (fp_q20 a) (fp_q21 a) (fp_q22 a) (fp_q23 a) (fp_q24 a)
(fp_q25 a) (fp_q26 a) (fp_q27 a) (fp_q28 a) (fp_q29 a) (fp_q30 a) (fp_q31 a) (fp_fpsr a)
(fp_fpcr a) (csselr_el1 a) (sctlr_el1 a) (cpacr_el1 a) (ttbr0_el1 a) (ttbr1_el1 a) (tcr_el1 a) (afsr0_el1 a)
(afsr1_el1 a) (far_el1 a) (mair_el1 a) (vbar_el1 a) (contextidr_el1 a) (amair_el1 a) (cntkctl_el1 a) (par_el1 a)
(tpidr_el1 a) b (mdscr_el1 a) (sp_el0 a) (tpidr_el0 a) (tpidrro_el0 a) (spsr_el2 a) (vmpidr_el2 a)
(mpidr_el1 a) (actlr_el1 a) (sp_el1 a) (elr_el1 a) (elr_el2 a) (vttbr_el2 a) (hcr_el2 a) (tpidr_el2 a)
(esr_el2 a) (ec a) (far_el2 a) (hpfar_el2 a).
Notation "a {spsr_el1 : b }" := (update_spsr_el1 a b) (at level 1).
Definition update_mdscr_el1 (a: CtxtRegs) b :=
mkCtxtRegs (x0 a) (x1 a) (x2 a) (x3 a) (x4 a) (x5 a) (x6 a) (x7 a)
(x8 a) (x9 a) (x10 a) (x11 a) (x12 a) (x13 a) (x14 a) (x15 a)
(x16 a) (x17 a) (x18 a) (x19 a) (x20 a) (x21 a) (x22 a) (x23 a)
(x24 a) (x25 a) (x26 a) (x27 a) (x28 a) (x29 a) (x30 a) (fp_q0 a)
(fp_q1 a) (fp_q2 a) (fp_q3 a) (fp_q4 a) (fp_q5 a) (fp_q6 a) (fp_q7 a) (fp_q8 a)
(fp_q9 a) (fp_q10 a) (fp_q11 a) (fp_q12 a) (fp_q13 a) (fp_q14 a) (fp_q15 a) (fp_q16 a)
(fp_q17 a) (fp_q18 a) (fp_q19 a) (fp_q20 a) (fp_q21 a) (fp_q22 a) (fp_q23 a) (fp_q24 a)
(fp_q25 a) (fp_q26 a) (fp_q27 a) (fp_q28 a) (fp_q29 a) (fp_q30 a) (fp_q31 a) (fp_fpsr a)
(fp_fpcr a) (csselr_el1 a) (sctlr_el1 a) (cpacr_el1 a) (ttbr0_el1 a) (ttbr1_el1 a) (tcr_el1 a) (afsr0_el1 a)
(afsr1_el1 a) (far_el1 a) (mair_el1 a) (vbar_el1 a) (contextidr_el1 a) (amair_el1 a) (cntkctl_el1 a) (par_el1 a)
(tpidr_el1 a) (spsr_el1 a) b (sp_el0 a) (tpidr_el0 a) (tpidrro_el0 a) (spsr_el2 a) (vmpidr_el2 a)
(mpidr_el1 a) (actlr_el1 a) (sp_el1 a) (elr_el1 a) (elr_el2 a) (vttbr_el2 a) (hcr_el2 a) (tpidr_el2 a)
(esr_el2 a) (ec a) (far_el2 a) (hpfar_el2 a).
Notation "a {mdscr_el1 : b }" := (update_mdscr_el1 a b) (at level 1).
Definition update_sp_el0 (a: CtxtRegs) b :=
mkCtxtRegs (x0 a) (x1 a) (x2 a) (x3 a) (x4 a) (x5 a) (x6 a) (x7 a)
(x8 a) (x9 a) (x10 a) (x11 a) (x12 a) (x13 a) (x14 a) (x15 a)
(x16 a) (x17 a) (x18 a) (x19 a) (x20 a) (x21 a) (x22 a) (x23 a)
(x24 a) (x25 a) (x26 a) (x27 a) (x28 a) (x29 a) (x30 a) (fp_q0 a)
(fp_q1 a) (fp_q2 a) (fp_q3 a) (fp_q4 a) (fp_q5 a) (fp_q6 a) (fp_q7 a) (fp_q8 a)
(fp_q9 a) (fp_q10 a) (fp_q11 a) (fp_q12 a) (fp_q13 a) (fp_q14 a) (fp_q15 a) (fp_q16 a)
(fp_q17 a) (fp_q18 a) (fp_q19 a) (fp_q20 a) (fp_q21 a) (fp_q22 a) (fp_q23 a) (fp_q24 a)
(fp_q25 a) (fp_q26 a) (fp_q27 a) (fp_q28 a) (fp_q29 a) (fp_q30 a) (fp_q31 a) (fp_fpsr a)
(fp_fpcr a) (csselr_el1 a) (sctlr_el1 a) (cpacr_el1 a) (ttbr0_el1 a) (ttbr1_el1 a) (tcr_el1 a) (afsr0_el1 a)
(afsr1_el1 a) (far_el1 a) (mair_el1 a) (vbar_el1 a) (contextidr_el1 a) (amair_el1 a) (cntkctl_el1 a) (par_el1 a)
(tpidr_el1 a) (spsr_el1 a) (mdscr_el1 a) b (tpidr_el0 a) (tpidrro_el0 a) (spsr_el2 a) (vmpidr_el2 a)
(mpidr_el1 a) (actlr_el1 a) (sp_el1 a) (elr_el1 a) (elr_el2 a) (vttbr_el2 a) (hcr_el2 a) (tpidr_el2 a)
(esr_el2 a) (ec a) (far_el2 a) (hpfar_el2 a).
Notation "a {sp_el0 : b }" := (update_sp_el0 a b) (at level 1).
Definition update_tpidr_el0 (a: CtxtRegs) b :=
mkCtxtRegs (x0 a) (x1 a) (x2 a) (x3 a) (x4 a) (x5 a) (x6 a) (x7 a)
(x8 a) (x9 a) (x10 a) (x11 a) (x12 a) (x13 a) (x14 a) (x15 a)
(x16 a) (x17 a) (x18 a) (x19 a) (x20 a) (x21 a) (x22 a) (x23 a)
(x24 a) (x25 a) (x26 a) (x27 a) (x28 a) (x29 a) (x30 a) (fp_q0 a)
(fp_q1 a) (fp_q2 a) (fp_q3 a) (fp_q4 a) (fp_q5 a) (fp_q6 a) (fp_q7 a) (fp_q8 a)
(fp_q9 a) (fp_q10 a) (fp_q11 a) (fp_q12 a) (fp_q13 a) (fp_q14 a) (fp_q15 a) (fp_q16 a)
(fp_q17 a) (fp_q18 a) (fp_q19 a) (fp_q20 a) (fp_q21 a) (fp_q22 a) (fp_q23 a) (fp_q24 a)
(fp_q25 a) (fp_q26 a) (fp_q27 a) (fp_q28 a) (fp_q29 a) (fp_q30 a) (fp_q31 a) (fp_fpsr a)
(fp_fpcr a) (csselr_el1 a) (sctlr_el1 a) (cpacr_el1 a) (ttbr0_el1 a) (ttbr1_el1 a) (tcr_el1 a) (afsr0_el1 a)
(afsr1_el1 a) (far_el1 a) (mair_el1 a) (vbar_el1 a) (contextidr_el1 a) (amair_el1 a) (cntkctl_el1 a) (par_el1 a)
(tpidr_el1 a) (spsr_el1 a) (mdscr_el1 a) (sp_el0 a) b (tpidrro_el0 a) (spsr_el2 a) (vmpidr_el2 a)
(mpidr_el1 a) (actlr_el1 a) (sp_el1 a) (elr_el1 a) (elr_el2 a) (vttbr_el2 a) (hcr_el2 a) (tpidr_el2 a)
(esr_el2 a) (ec a) (far_el2 a) (hpfar_el2 a).
Notation "a {tpidr_el0 : b }" := (update_tpidr_el0 a b) (at level 1).
Definition update_tpidrro_el0 (a: CtxtRegs) b :=
mkCtxtRegs (x0 a) (x1 a) (x2 a) (x3 a) (x4 a) (x5 a) (x6 a) (x7 a)
(x8 a) (x9 a) (x10 a) (x11 a) (x12 a) (x13 a) (x14 a) (x15 a)
(x16 a) (x17 a) (x18 a) (x19 a) (x20 a) (x21 a) (x22 a) (x23 a)
(x24 a) (x25 a) (x26 a) (x27 a) (x28 a) (x29 a) (x30 a) (fp_q0 a)
(fp_q1 a) (fp_q2 a) (fp_q3 a) (fp_q4 a) (fp_q5 a) (fp_q6 a) (fp_q7 a) (fp_q8 a)
(fp_q9 a) (fp_q10 a) (fp_q11 a) (fp_q12 a) (fp_q13 a) (fp_q14 a) (fp_q15 a) (fp_q16 a)
(fp_q17 a) (fp_q18 a) (fp_q19 a) (fp_q20 a) (fp_q21 a) (fp_q22 a) (fp_q23 a) (fp_q24 a)
(fp_q25 a) (fp_q26 a) (fp_q27 a) (fp_q28 a) (fp_q29 a) (fp_q30 a) (fp_q31 a) (fp_fpsr a)
(fp_fpcr a) (csselr_el1 a) (sctlr_el1 a) (cpacr_el1 a) (ttbr0_el1 a) (ttbr1_el1 a) (tcr_el1 a) (afsr0_el1 a)
(afsr1_el1 a) (far_el1 a) (mair_el1 a) (vbar_el1 a) (contextidr_el1 a) (amair_el1 a) (cntkctl_el1 a) (par_el1 a)
(tpidr_el1 a) (spsr_el1 a) (mdscr_el1 a) (sp_el0 a) (tpidr_el0 a) b (spsr_el2 a) (vmpidr_el2 a)
(mpidr_el1 a) (actlr_el1 a) (sp_el1 a) (elr_el1 a) (elr_el2 a) (vttbr_el2 a) (hcr_el2 a) (tpidr_el2 a)
(esr_el2 a) (ec a) (far_el2 a) (hpfar_el2 a).
Notation "a {tpidrro_el0 : b }" := (update_tpidrro_el0 a b) (at level 1).
Definition update_spsr_el2 (a: CtxtRegs) b :=
mkCtxtRegs (x0 a) (x1 a) (x2 a) (x3 a) (x4 a) (x5 a) (x6 a) (x7 a)
(x8 a) (x9 a) (x10 a) (x11 a) (x12 a) (x13 a) (x14 a) (x15 a)
(x16 a) (x17 a) (x18 a) (x19 a) (x20 a) (x21 a) (x22 a) (x23 a)
(x24 a) (x25 a) (x26 a) (x27 a) (x28 a) (x29 a) (x30 a) (fp_q0 a)
(fp_q1 a) (fp_q2 a) (fp_q3 a) (fp_q4 a) (fp_q5 a) (fp_q6 a) (fp_q7 a) (fp_q8 a)
(fp_q9 a) (fp_q10 a) (fp_q11 a) (fp_q12 a) (fp_q13 a) (fp_q14 a) (fp_q15 a) (fp_q16 a)
(fp_q17 a) (fp_q18 a) (fp_q19 a) (fp_q20 a) (fp_q21 a) (fp_q22 a) (fp_q23 a) (fp_q24 a)
(fp_q25 a) (fp_q26 a) (fp_q27 a) (fp_q28 a) (fp_q29 a) (fp_q30 a) (fp_q31 a) (fp_fpsr a)
(fp_fpcr a) (csselr_el1 a) (sctlr_el1 a) (cpacr_el1 a) (ttbr0_el1 a) (ttbr1_el1 a) (tcr_el1 a) (afsr0_el1 a)
(afsr1_el1 a) (far_el1 a) (mair_el1 a) (vbar_el1 a) (contextidr_el1 a) (amair_el1 a) (cntkctl_el1 a) (par_el1 a)
(tpidr_el1 a) (spsr_el1 a) (mdscr_el1 a) (sp_el0 a) (tpidr_el0 a) (tpidrro_el0 a) b (vmpidr_el2 a)
(mpidr_el1 a) (actlr_el1 a) (sp_el1 a) (elr_el1 a) (elr_el2 a) (vttbr_el2 a) (hcr_el2 a) (tpidr_el2 a)
(esr_el2 a) (ec a) (far_el2 a) (hpfar_el2 a).
Notation "a {spsr_el2 : b }" := (update_spsr_el2 a b) (at level 1).
Definition update_vmpidr_el2 (a: CtxtRegs) b :=
mkCtxtRegs (x0 a) (x1 a) (x2 a) (x3 a) (x4 a) (x5 a) (x6 a) (x7 a)
(x8 a) (x9 a) (x10 a) (x11 a) (x12 a) (x13 a) (x14 a) (x15 a)
(x16 a) (x17 a) (x18 a) (x19 a) (x20 a) (x21 a) (x22 a) (x23 a)
(x24 a) (x25 a) (x26 a) (x27 a) (x28 a) (x29 a) (x30 a) (fp_q0 a)
(fp_q1 a) (fp_q2 a) (fp_q3 a) (fp_q4 a) (fp_q5 a) (fp_q6 a) (fp_q7 a) (fp_q8 a)
(fp_q9 a) (fp_q10 a) (fp_q11 a) (fp_q12 a) (fp_q13 a) (fp_q14 a) (fp_q15 a) (fp_q16 a)
(fp_q17 a) (fp_q18 a) (fp_q19 a) (fp_q20 a) (fp_q21 a) (fp_q22 a) (fp_q23 a) (fp_q24 a)
(fp_q25 a) (fp_q26 a) (fp_q27 a) (fp_q28 a) (fp_q29 a) (fp_q30 a) (fp_q31 a) (fp_fpsr a)
(fp_fpcr a) (csselr_el1 a) (sctlr_el1 a) (cpacr_el1 a) (ttbr0_el1 a) (ttbr1_el1 a) (tcr_el1 a) (afsr0_el1 a)
(afsr1_el1 a) (far_el1 a) (mair_el1 a) (vbar_el1 a) (contextidr_el1 a) (amair_el1 a) (cntkctl_el1 a) (par_el1 a)
(tpidr_el1 a) (spsr_el1 a) (mdscr_el1 a) (sp_el0 a) (tpidr_el0 a) (tpidrro_el0 a) (spsr_el2 a) b
(mpidr_el1 a) (actlr_el1 a) (sp_el1 a) (elr_el1 a) (elr_el2 a) (vttbr_el2 a) (hcr_el2 a) (tpidr_el2 a)
(esr_el2 a) (ec a) (far_el2 a) (hpfar_el2 a).
Notation "a {vmpidr_el2 : b }" := (update_vmpidr_el2 a b) (at level 1).
Definition update_mpidr_el1 (a: CtxtRegs) b :=
mkCtxtRegs (x0 a) (x1 a) (x2 a) (x3 a) (x4 a) (x5 a) (x6 a) (x7 a)
(x8 a) (x9 a) (x10 a) (x11 a) (x12 a) (x13 a) (x14 a) (x15 a)
(x16 a) (x17 a) (x18 a) (x19 a) (x20 a) (x21 a) (x22 a) (x23 a)
(x24 a) (x25 a) (x26 a) (x27 a) (x28 a) (x29 a) (x30 a) (fp_q0 a)
(fp_q1 a) (fp_q2 a) (fp_q3 a) (fp_q4 a) (fp_q5 a) (fp_q6 a) (fp_q7 a) (fp_q8 a)
(fp_q9 a) (fp_q10 a) (fp_q11 a) (fp_q12 a) (fp_q13 a) (fp_q14 a) (fp_q15 a) (fp_q16 a)
(fp_q17 a) (fp_q18 a) (fp_q19 a) (fp_q20 a) (fp_q21 a) (fp_q22 a) (fp_q23 a) (fp_q24 a)
(fp_q25 a) (fp_q26 a) (fp_q27 a) (fp_q28 a) (fp_q29 a) (fp_q30 a) (fp_q31 a) (fp_fpsr a)
(fp_fpcr a) (csselr_el1 a) (sctlr_el1 a) (cpacr_el1 a) (ttbr0_el1 a) (ttbr1_el1 a) (tcr_el1 a) (afsr0_el1 a)
(afsr1_el1 a) (far_el1 a) (mair_el1 a) (vbar_el1 a) (contextidr_el1 a) (amair_el1 a) (cntkctl_el1 a) (par_el1 a)
(tpidr_el1 a) (spsr_el1 a) (mdscr_el1 a) (sp_el0 a) (tpidr_el0 a) (tpidrro_el0 a) (spsr_el2 a) (vmpidr_el2 a)
b (actlr_el1 a) (sp_el1 a) (elr_el1 a) (elr_el2 a) (vttbr_el2 a) (hcr_el2 a) (tpidr_el2 a)
(esr_el2 a) (ec a) (far_el2 a) (hpfar_el2 a).
Notation "a {mpidr_el1 : b }" := (update_mpidr_el1 a b) (at level 1).
Definition update_actlr_el1 (a: CtxtRegs) b :=
mkCtxtRegs (x0 a) (x1 a) (x2 a) (x3 a) (x4 a) (x5 a) (x6 a) (x7 a)
(x8 a) (x9 a) (x10 a) (x11 a) (x12 a) (x13 a) (x14 a) (x15 a)
(x16 a) (x17 a) (x18 a) (x19 a) (x20 a) (x21 a) (x22 a) (x23 a)
(x24 a) (x25 a) (x26 a) (x27 a) (x28 a) (x29 a) (x30 a) (fp_q0 a)
(fp_q1 a) (fp_q2 a) (fp_q3 a) (fp_q4 a) (fp_q5 a) (fp_q6 a) (fp_q7 a) (fp_q8 a)
(fp_q9 a) (fp_q10 a) (fp_q11 a) (fp_q12 a) (fp_q13 a) (fp_q14 a) (fp_q15 a) (fp_q16 a)
(fp_q17 a) (fp_q18 a) (fp_q19 a) (fp_q20 a) (fp_q21 a) (fp_q22 a) (fp_q23 a) (fp_q24 a)
(fp_q25 a) (fp_q26 a) (fp_q27 a) (fp_q28 a) (fp_q29 a) (fp_q30 a) (fp_q31 a) (fp_fpsr a)
(fp_fpcr a) (csselr_el1 a) (sctlr_el1 a) (cpacr_el1 a) (ttbr0_el1 a) (ttbr1_el1 a) (tcr_el1 a) (afsr0_el1 a)
(afsr1_el1 a) (far_el1 a) (mair_el1 a) (vbar_el1 a) (contextidr_el1 a) (amair_el1 a) (cntkctl_el1 a) (par_el1 a)
(tpidr_el1 a) (spsr_el1 a) (mdscr_el1 a) (sp_el0 a) (tpidr_el0 a) (tpidrro_el0 a) (spsr_el2 a) (vmpidr_el2 a)
(mpidr_el1 a) b (sp_el1 a) (elr_el1 a) (elr_el2 a) (vttbr_el2 a) (hcr_el2 a) (tpidr_el2 a)
(esr_el2 a) (ec a) (far_el2 a) (hpfar_el2 a).
Notation "a {actlr_el1 : b }" := (update_actlr_el1 a b) (at level 1).
Definition update_sp_el1 (a: CtxtRegs) b :=
mkCtxtRegs (x0 a) (x1 a) (x2 a) (x3 a) (x4 a) (x5 a) (x6 a) (x7 a)
(x8 a) (x9 a) (x10 a) (x11 a) (x12 a) (x13 a) (x14 a) (x15 a)
(x16 a) (x17 a) (x18 a) (x19 a) (x20 a) (x21 a) (x22 a) (x23 a)
(x24 a) (x25 a) (x26 a) (x27 a) (x28 a) (x29 a) (x30 a) (fp_q0 a)
(fp_q1 a) (fp_q2 a) (fp_q3 a) (fp_q4 a) (fp_q5 a) (fp_q6 a) (fp_q7 a) (fp_q8 a)
(fp_q9 a) (fp_q10 a) (fp_q11 a) (fp_q12 a) (fp_q13 a) (fp_q14 a) (fp_q15 a) (fp_q16 a)
(fp_q17 a) (fp_q18 a) (fp_q19 a) (fp_q20 a) (fp_q21 a) (fp_q22 a) (fp_q23 a) (fp_q24 a)
(fp_q25 a) (fp_q26 a) (fp_q27 a) (fp_q28 a) (fp_q29 a) (fp_q30 a) (fp_q31 a) (fp_fpsr a)
(fp_fpcr a) (csselr_el1 a) (sctlr_el1 a) (cpacr_el1 a) (ttbr0_el1 a) (ttbr1_el1 a) (tcr_el1 a) (afsr0_el1 a)
(afsr1_el1 a) (far_el1 a) (mair_el1 a) (vbar_el1 a) (contextidr_el1 a) (amair_el1 a) (cntkctl_el1 a) (par_el1 a)
(tpidr_el1 a) (spsr_el1 a) (mdscr_el1 a) (sp_el0 a) (tpidr_el0 a) (tpidrro_el0 a) (spsr_el2 a) (vmpidr_el2 a)
(mpidr_el1 a) (actlr_el1 a) b (elr_el1 a) (elr_el2 a) (vttbr_el2 a) (hcr_el2 a) (tpidr_el2 a)
(esr_el2 a) (ec a) (far_el2 a) (hpfar_el2 a).
Notation "a {sp_el1 : b }" := (update_sp_el1 a b) (at level 1).
Definition update_elr_el1 (a: CtxtRegs) b :=
mkCtxtRegs (x0 a) (x1 a) (x2 a) (x3 a) (x4 a) (x5 a) (x6 a) (x7 a)
(x8 a) (x9 a) (x10 a) (x11 a) (x12 a) (x13 a) (x14 a) (x15 a)
(x16 a) (x17 a) (x18 a) (x19 a) (x20 a) (x21 a) (x22 a) (x23 a)
(x24 a) (x25 a) (x26 a) (x27 a) (x28 a) (x29 a) (x30 a) (fp_q0 a)
(fp_q1 a) (fp_q2 a) (fp_q3 a) (fp_q4 a) (fp_q5 a) (fp_q6 a) (fp_q7 a) (fp_q8 a)
(fp_q9 a) (fp_q10 a) (fp_q11 a) (fp_q12 a) (fp_q13 a) (fp_q14 a) (fp_q15 a) (fp_q16 a)
(fp_q17 a) (fp_q18 a) (fp_q19 a) (fp_q20 a) (fp_q21 a) (fp_q22 a) (fp_q23 a) (fp_q24 a)
(fp_q25 a) (fp_q26 a) (fp_q27 a) (fp_q28 a) (fp_q29 a) (fp_q30 a) (fp_q31 a) (fp_fpsr a)
(fp_fpcr a) (csselr_el1 a) (sctlr_el1 a) (cpacr_el1 a) (ttbr0_el1 a) (ttbr1_el1 a) (tcr_el1 a) (afsr0_el1 a)
(afsr1_el1 a) (far_el1 a) (mair_el1 a) (vbar_el1 a) (contextidr_el1 a) (amair_el1 a) (cntkctl_el1 a) (par_el1 a)
(tpidr_el1 a) (spsr_el1 a) (mdscr_el1 a) (sp_el0 a) (tpidr_el0 a) (tpidrro_el0 a) (spsr_el2 a) (vmpidr_el2 a)
(mpidr_el1 a) (actlr_el1 a) (sp_el1 a) b (elr_el2 a) (vttbr_el2 a) (hcr_el2 a) (tpidr_el2 a)
(esr_el2 a) (ec a) (far_el2 a) (hpfar_el2 a).
Notation "a {elr_el1 : b }" := (update_elr_el1 a b) (at level 1).
Definition update_elr_el2 (a: CtxtRegs) b :=
mkCtxtRegs (x0 a) (x1 a) (x2 a) (x3 a) (x4 a) (x5 a) (x6 a) (x7 a)
(x8 a) (x9 a) (x10 a) (x11 a) (x12 a) (x13 a) (x14 a) (x15 a)
(x16 a) (x17 a) (x18 a) (x19 a) (x20 a) (x21 a) (x22 a) (x23 a)
(x24 a) (x25 a) (x26 a) (x27 a) (x28 a) (x29 a) (x30 a) (fp_q0 a)
(fp_q1 a) (fp_q2 a) (fp_q3 a) (fp_q4 a) (fp_q5 a) (fp_q6 a) (fp_q7 a) (fp_q8 a)
(fp_q9 a) (fp_q10 a) (fp_q11 a) (fp_q12 a) (fp_q13 a) (fp_q14 a) (fp_q15 a) (fp_q16 a)
(fp_q17 a) (fp_q18 a) (fp_q19 a) (fp_q20 a) (fp_q21 a) (fp_q22 a) (fp_q23 a) (fp_q24 a)
(fp_q25 a) (fp_q26 a) (fp_q27 a) (fp_q28 a) (fp_q29 a) (fp_q30 a) (fp_q31 a) (fp_fpsr a)
(fp_fpcr a) (csselr_el1 a) (sctlr_el1 a) (cpacr_el1 a) (ttbr0_el1 a) (ttbr1_el1 a) (tcr_el1 a) (afsr0_el1 a)
(afsr1_el1 a) (far_el1 a) (mair_el1 a) (vbar_el1 a) (contextidr_el1 a) (amair_el1 a) (cntkctl_el1 a) (par_el1 a)
(tpidr_el1 a) (spsr_el1 a) (mdscr_el1 a) (sp_el0 a) (tpidr_el0 a) (tpidrro_el0 a) (spsr_el2 a) (vmpidr_el2 a)
(mpidr_el1 a) (actlr_el1 a) (sp_el1 a) (elr_el1 a) b (vttbr_el2 a) (hcr_el2 a) (tpidr_el2 a)
(esr_el2 a) (ec a) (far_el2 a) (hpfar_el2 a).
Notation "a {elr_el2 : b }" := (update_elr_el2 a b) (at level 1).
Definition update_vttbr_el2 (a: CtxtRegs) b :=
mkCtxtRegs (x0 a) (x1 a) (x2 a) (x3 a) (x4 a) (x5 a) (x6 a) (x7 a)
(x8 a) (x9 a) (x10 a) (x11 a) (x12 a) (x13 a) (x14 a) (x15 a)
(x16 a) (x17 a) (x18 a) (x19 a) (x20 a) (x21 a) (x22 a) (x23 a)
(x24 a) (x25 a) (x26 a) (x27 a) (x28 a) (x29 a) (x30 a) (fp_q0 a)
(fp_q1 a) (fp_q2 a) (fp_q3 a) (fp_q4 a) (fp_q5 a) (fp_q6 a) (fp_q7 a) (fp_q8 a)
(fp_q9 a) (fp_q10 a) (fp_q11 a) (fp_q12 a) (fp_q13 a) (fp_q14 a) (fp_q15 a) (fp_q16 a)
(fp_q17 a) (fp_q18 a) (fp_q19 a) (fp_q20 a) (fp_q21 a) (fp_q22 a) (fp_q23 a) (fp_q24 a)
(fp_q25 a) (fp_q26 a) (fp_q27 a) (fp_q28 a) (fp_q29 a) (fp_q30 a) (fp_q31 a) (fp_fpsr a)
(fp_fpcr a) (csselr_el1 a) (sctlr_el1 a) (cpacr_el1 a) (ttbr0_el1 a) (ttbr1_el1 a) (tcr_el1 a) (afsr0_el1 a)
(afsr1_el1 a) (far_el1 a) (mair_el1 a) (vbar_el1 a) (contextidr_el1 a) (amair_el1 a) (cntkctl_el1 a) (par_el1 a)
(tpidr_el1 a) (spsr_el1 a) (mdscr_el1 a) (sp_el0 a) (tpidr_el0 a) (tpidrro_el0 a) (spsr_el2 a) (vmpidr_el2 a)
(mpidr_el1 a) (actlr_el1 a) (sp_el1 a) (elr_el1 a) (elr_el2 a) b (hcr_el2 a) (tpidr_el2 a)
(esr_el2 a) (ec a) (far_el2 a) (hpfar_el2 a).
Notation "a {vttbr_el2 : b }" := (update_vttbr_el2 a b) (at level 1).
Definition update_hcr_el2 (a: CtxtRegs) b :=
mkCtxtRegs (x0 a) (x1 a) (x2 a) (x3 a) (x4 a) (x5 a) (x6 a) (x7 a)
(x8 a) (x9 a) (x10 a) (x11 a) (x12 a) (x13 a) (x14 a) (x15 a)
(x16 a) (x17 a) (x18 a) (x19 a) (x20 a) (x21 a) (x22 a) (x23 a)
(x24 a) (x25 a) (x26 a) (x27 a) (x28 a) (x29 a) (x30 a) (fp_q0 a)
(fp_q1 a) (fp_q2 a) (fp_q3 a) (fp_q4 a) (fp_q5 a) (fp_q6 a) (fp_q7 a) (fp_q8 a)
(fp_q9 a) (fp_q10 a) (fp_q11 a) (fp_q12 a) (fp_q13 a) (fp_q14 a) (fp_q15 a) (fp_q16 a)
(fp_q17 a) (fp_q18 a) (fp_q19 a) (fp_q20 a) (fp_q21 a) (fp_q22 a) (fp_q23 a) (fp_q24 a)
(fp_q25 a) (fp_q26 a) (fp_q27 a) (fp_q28 a) (fp_q29 a) (fp_q30 a) (fp_q31 a) (fp_fpsr a)
(fp_fpcr a) (csselr_el1 a) (sctlr_el1 a) (cpacr_el1 a) (ttbr0_el1 a) (ttbr1_el1 a) (tcr_el1 a) (afsr0_el1 a)
(afsr1_el1 a) (far_el1 a) (mair_el1 a) (vbar_el1 a) (contextidr_el1 a) (amair_el1 a) (cntkctl_el1 a) (par_el1 a)
(tpidr_el1 a) (spsr_el1 a) (mdscr_el1 a) (sp_el0 a) (tpidr_el0 a) (tpidrro_el0 a) (spsr_el2 a) (vmpidr_el2 a)
(mpidr_el1 a) (actlr_el1 a) (sp_el1 a) (elr_el1 a) (elr_el2 a) (vttbr_el2 a) b (tpidr_el2 a)
(esr_el2 a) (ec a) (far_el2 a) (hpfar_el2 a).
Notation "a {hcr_el2 : b }" := (update_hcr_el2 a b) (at level 1).
Definition update_tpidr_el2 (a: CtxtRegs) b :=
mkCtxtRegs (x0 a) (x1 a) (x2 a) (x3 a) (x4 a) (x5 a) (x6 a) (x7 a)
(x8 a) (x9 a) (x10 a) (x11 a) (x12 a) (x13 a) (x14 a) (x15 a)
(x16 a) (x17 a) (x18 a) (x19 a) (x20 a) (x21 a) (x22 a) (x23 a)
(x24 a) (x25 a) (x26 a) (x27 a) (x28 a) (x29 a) (x30 a) (fp_q0 a)
(fp_q1 a) (fp_q2 a) (fp_q3 a) (fp_q4 a) (fp_q5 a) (fp_q6 a) (fp_q7 a) (fp_q8 a)
(fp_q9 a) (fp_q10 a) (fp_q11 a) (fp_q12 a) (fp_q13 a) (fp_q14 a) (fp_q15 a) (fp_q16 a)
(fp_q17 a) (fp_q18 a) (fp_q19 a) (fp_q20 a) (fp_q21 a) (fp_q22 a) (fp_q23 a) (fp_q24 a)
(fp_q25 a) (fp_q26 a) (fp_q27 a) (fp_q28 a) (fp_q29 a) (fp_q30 a) (fp_q31 a) (fp_fpsr a)
(fp_fpcr a) (csselr_el1 a) (sctlr_el1 a) (cpacr_el1 a) (ttbr0_el1 a) (ttbr1_el1 a) (tcr_el1 a) (afsr0_el1 a)
(afsr1_el1 a) (far_el1 a) (mair_el1 a) (vbar_el1 a) (contextidr_el1 a) (amair_el1 a) (cntkctl_el1 a) (par_el1 a)
(tpidr_el1 a) (spsr_el1 a) (mdscr_el1 a) (sp_el0 a) (tpidr_el0 a) (tpidrro_el0 a) (spsr_el2 a) (vmpidr_el2 a)
(mpidr_el1 a) (actlr_el1 a) (sp_el1 a) (elr_el1 a) (elr_el2 a) (vttbr_el2 a) (hcr_el2 a) b
(esr_el2 a) (ec a) (far_el2 a) (hpfar_el2 a).
Notation "a {tpidr_el2 : b }" := (update_tpidr_el2 a b) (at level 1).
Definition update_esr_el2 (a: CtxtRegs) b :=
mkCtxtRegs (x0 a) (x1 a) (x2 a) (x3 a) (x4 a) (x5 a) (x6 a) (x7 a)
(x8 a) (x9 a) (x10 a) (x11 a) (x12 a) (x13 a) (x14 a) (x15 a)
(x16 a) (x17 a) (x18 a) (x19 a) (x20 a) (x21 a) (x22 a) (x23 a)
(x24 a) (x25 a) (x26 a) (x27 a) (x28 a) (x29 a) (x30 a) (fp_q0 a)
(fp_q1 a) (fp_q2 a) (fp_q3 a) (fp_q4 a) (fp_q5 a) (fp_q6 a) (fp_q7 a) (fp_q8 a)
(fp_q9 a) (fp_q10 a) (fp_q11 a) (fp_q12 a) (fp_q13 a) (fp_q14 a) (fp_q15 a) (fp_q16 a)
(fp_q17 a) (fp_q18 a) (fp_q19 a) (fp_q20 a) (fp_q21 a) (fp_q22 a) (fp_q23 a) (fp_q24 a)
(fp_q25 a) (fp_q26 a) (fp_q27 a) (fp_q28 a) (fp_q29 a) (fp_q30 a) (fp_q31 a) (fp_fpsr a)
(fp_fpcr a) (csselr_el1 a) (sctlr_el1 a) (cpacr_el1 a) (ttbr0_el1 a) (ttbr1_el1 a) (tcr_el1 a) (afsr0_el1 a)
(afsr1_el1 a) (far_el1 a) (mair_el1 a) (vbar_el1 a) (contextidr_el1 a) (amair_el1 a) (cntkctl_el1 a) (par_el1 a)
(tpidr_el1 a) (spsr_el1 a) (mdscr_el1 a) (sp_el0 a) (tpidr_el0 a) (tpidrro_el0 a) (spsr_el2 a) (vmpidr_el2 a)
(mpidr_el1 a) (actlr_el1 a) (sp_el1 a) (elr_el1 a) (elr_el2 a) (vttbr_el2 a) (hcr_el2 a) (tpidr_el2 a)
b (ec a) (far_el2 a) (hpfar_el2 a).
Notation "a {esr_el2 : b }" := (update_esr_el2 a b) (at level 1).
Definition update_ec (a: CtxtRegs) b :=
mkCtxtRegs (x0 a) (x1 a) (x2 a) (x3 a) (x4 a) (x5 a) (x6 a) (x7 a)
(x8 a) (x9 a) (x10 a) (x11 a) (x12 a) (x13 a) (x14 a) (x15 a)
(x16 a) (x17 a) (x18 a) (x19 a) (x20 a) (x21 a) (x22 a) (x23 a)
(x24 a) (x25 a) (x26 a) (x27 a) (x28 a) (x29 a) (x30 a) (fp_q0 a)
(fp_q1 a) (fp_q2 a) (fp_q3 a) (fp_q4 a) (fp_q5 a) (fp_q6 a) (fp_q7 a) (fp_q8 a)
(fp_q9 a) (fp_q10 a) (fp_q11 a) (fp_q12 a) (fp_q13 a) (fp_q14 a) (fp_q15 a) (fp_q16 a)
(fp_q17 a) (fp_q18 a) (fp_q19 a) (fp_q20 a) (fp_q21 a) (fp_q22 a) (fp_q23 a) (fp_q24 a)
(fp_q25 a) (fp_q26 a) (fp_q27 a) (fp_q28 a) (fp_q29 a) (fp_q30 a) (fp_q31 a) (fp_fpsr a)
(fp_fpcr a) (csselr_el1 a) (sctlr_el1 a) (cpacr_el1 a) (ttbr0_el1 a) (ttbr1_el1 a) (tcr_el1 a) (afsr0_el1 a)
(afsr1_el1 a) (far_el1 a) (mair_el1 a) (vbar_el1 a) (contextidr_el1 a) (amair_el1 a) (cntkctl_el1 a) (par_el1 a)
(tpidr_el1 a) (spsr_el1 a) (mdscr_el1 a) (sp_el0 a) (tpidr_el0 a) (tpidrro_el0 a) (spsr_el2 a) (vmpidr_el2 a)
(mpidr_el1 a) (actlr_el1 a) (sp_el1 a) (elr_el1 a) (elr_el2 a) (vttbr_el2 a) (hcr_el2 a) (tpidr_el2 a)
(esr_el2 a) b (far_el2 a) (hpfar_el2 a).
Notation "a {ec : b }" := (update_ec a b) (at level 1).
Definition update_far_el2 (a: CtxtRegs) b :=
mkCtxtRegs (x0 a) (x1 a) (x2 a) (x3 a) (x4 a) (x5 a) (x6 a) (x7 a)
(x8 a) (x9 a) (x10 a) (x11 a) (x12 a) (x13 a) (x14 a) (x15 a)
(x16 a) (x17 a) (x18 a) (x19 a) (x20 a) (x21 a) (x22 a) (x23 a)
(x24 a) (x25 a) (x26 a) (x27 a) (x28 a) (x29 a) (x30 a) (fp_q0 a)
(fp_q1 a) (fp_q2 a) (fp_q3 a) (fp_q4 a) (fp_q5 a) (fp_q6 a) (fp_q7 a) (fp_q8 a)
(fp_q9 a) (fp_q10 a) (fp_q11 a) (fp_q12 a) (fp_q13 a) (fp_q14 a) (fp_q15 a) (fp_q16 a)
(fp_q17 a) (fp_q18 a) (fp_q19 a) (fp_q20 a) (fp_q21 a) (fp_q22 a) (fp_q23 a) (fp_q24 a)
(fp_q25 a) (fp_q26 a) (fp_q27 a) (fp_q28 a) (fp_q29 a) (fp_q30 a) (fp_q31 a) (fp_fpsr a)
(fp_fpcr a) (csselr_el1 a) (sctlr_el1 a) (cpacr_el1 a) (ttbr0_el1 a) (ttbr1_el1 a) (tcr_el1 a) (afsr0_el1 a)
(afsr1_el1 a) (far_el1 a) (mair_el1 a) (vbar_el1 a) (contextidr_el1 a) (amair_el1 a) (cntkctl_el1 a) (par_el1 a)
(tpidr_el1 a) (spsr_el1 a) (mdscr_el1 a) (sp_el0 a) (tpidr_el0 a) (tpidrro_el0 a) (spsr_el2 a) (vmpidr_el2 a)
(mpidr_el1 a) (actlr_el1 a) (sp_el1 a) (elr_el1 a) (elr_el2 a) (vttbr_el2 a) (hcr_el2 a) (tpidr_el2 a)
(esr_el2 a) (ec a) b (hpfar_el2 a).
Notation "a {far_el2 : b }" := (update_far_el2 a b) (at level 1).
Definition update_hpfar_el2 (a: CtxtRegs) b :=
mkCtxtRegs (x0 a) (x1 a) (x2 a) (x3 a) (x4 a) (x5 a) (x6 a) (x7 a)
(x8 a) (x9 a) (x10 a) (x11 a) (x12 a) (x13 a) (x14 a) (x15 a)
(x16 a) (x17 a) (x18 a) (x19 a) (x20 a) (x21 a) (x22 a) (x23 a)
(x24 a) (x25 a) (x26 a) (x27 a) (x28 a) (x29 a) (x30 a) (fp_q0 a)
(fp_q1 a) (fp_q2 a) (fp_q3 a) (fp_q4 a) (fp_q5 a) (fp_q6 a) (fp_q7 a) (fp_q8 a)
(fp_q9 a) (fp_q10 a) (fp_q11 a) (fp_q12 a) (fp_q13 a) (fp_q14 a) (fp_q15 a) (fp_q16 a)
(fp_q17 a) (fp_q18 a) (fp_q19 a) (fp_q20 a) (fp_q21 a) (fp_q22 a) (fp_q23 a) (fp_q24 a)
(fp_q25 a) (fp_q26 a) (fp_q27 a) (fp_q28 a) (fp_q29 a) (fp_q30 a) (fp_q31 a) (fp_fpsr a)
(fp_fpcr a) (csselr_el1 a) (sctlr_el1 a) (cpacr_el1 a) (ttbr0_el1 a) (ttbr1_el1 a) (tcr_el1 a) (afsr0_el1 a)
(afsr1_el1 a) (far_el1 a) (mair_el1 a) (vbar_el1 a) (contextidr_el1 a) (amair_el1 a) (cntkctl_el1 a) (par_el1 a)
(tpidr_el1 a) (spsr_el1 a) (mdscr_el1 a) (sp_el0 a) (tpidr_el0 a) (tpidrro_el0 a) (spsr_el2 a) (vmpidr_el2 a)
(mpidr_el1 a) (actlr_el1 a) (sp_el1 a) (elr_el1 a) (elr_el2 a) (vttbr_el2 a) (hcr_el2 a) (tpidr_el2 a)
(esr_el2 a) (ec a) (far_el2 a) b.
Notation "a {hpfar_el2 : b }" := (update_hpfar_el2 a b) (at level 1).
(* Log Replay *)
Fixpoint CalFlatmem o (log: MultiLog) :=
match log with
| nil => o
| (TEVENT _ e) :: l' =>
let l0 := CalFlatmem o l' in
match e with
| TSHARED (OFLATMEM m) => m
| _ => l0
end
end.
Fixpoint CalCoreData o (log: MultiLog) :=
match log with
| nil => o
| (TEVENT _ e) :: l' =>
let l0 := CalCoreData o l' in
match e with
| TSHARED (OCORE_DATA m) => m
| _ => l0
end
end.
Fixpoint CalS2Page o (log: MultiLog) :=
match log with
| nil => o
| (TEVENT _ e) :: l' =>
let l0 := CalS2Page o l' in
match e with
| TSHARED (OS2_PAGE m) => m
| _ => l0
end
end.
Fixpoint CalSPT o (log: MultiLog) :=
match log with
| nil => o
| (TEVENT _ e) :: l' =>
let l0 := CalSPT o l' in
match e with
| TSHARED (OSPT m) => m
| _ => l0
end
end.
Fixpoint CalSMMU o (log: MultiLog) :=
match log with
| nil => o
| (TEVENT _ e) :: l' =>
let l0 := CalSMMU o l' in
match e with
| TSHARED (OSMMU m) => m
| _ => l0
end
end.
Fixpoint CalNPT o (log: MultiLog) :=
match log with
| nil => o
| (TEVENT _ e) :: l' =>
let l0 := CalNPT o l' in
match e with
| TSHARED (ONPT m) => m
| _ => l0
end
end.
Fixpoint CalVMInfo o (log: MultiLog) :=
match log with
| nil => o
| (TEVENT _ e) :: l' =>
let l0 := CalVMInfo o l' in
match e with
| TSHARED (OVMINFO m) => m
| _ => l0
end
end.
Fixpoint CalState (id: Z) (log: MultiLog) (sdt: Shared) :=
if id =? FLATMEM_ID then
sdt {flatmem: CalFlatmem (flatmem sdt) log}
else if id =? CORE_ID then
sdt {core_data: CalCoreData (core_data sdt) log}
else if id =? S2PAGE_ID then
sdt {s2page: CalS2Page (s2page sdt) log}
else if id =? SPT_ID then
sdt {spts: CalSPT (spts sdt) log}
else if id =? SMMU_ID then
sdt {smmu_vmid: CalSMMU (smmu_vmid sdt) log}
else if (NPT_ID <=? id) && (id <? INFO_ID) then
let vmid := id - NPT_ID in
sdt {npts: (npts sdt) # vmid == (CalNPT (vmid @ (npts sdt)) log)}
else if (INFO_ID <=? id) && (id <? ID_END) then
let vmid := id - INFO_ID in
sdt {vminfos: (vminfos sdt) # vmid == (CalVMInfo (vmid @ (vminfos sdt)) log)}
else sdt.
Section CLASS_RELATIONS.
Context `{data : CompatData RData}.
Context `{data0 : CompatData RData}.
Notation HDATAOps := (cdata (cdata_ops := data_ops) RData).
Notation LDATAOps := (cdata (cdata_ops := data_ops0) RData).
Context `{Hstencil: Stencil}.
Context `{Hmem: Mem.MemoryModel}.
Context `{rel_prf: CompatRel _ (memory_model_ops:= memory_model_ops) _
(stencil_ops:= stencil_ops) HDATAOps LDATAOps}.
Section CLASS_CPU_ID.
Class relate_impl_CPU_ID :=
{
relate_impl_CPU_ID_eq s ι d1 d2:
relate_AbData s ι d1 d2 ->
d1.(curid) = d2.(curid);
relate_impl_CPU_ID_update s ι d1 d2:
relate_AbData s ι d1 d2 ->
forall b, relate_AbData s ι d1 {curid: b} d2 {curid: b}
}.
Class match_impl_CPU_ID :=
{
match_impl_CPU_ID_update ι d m f:
match_AbData ι d m f ->
forall b, match_AbData ι d {curid: b} m f
}.
End CLASS_CPU_ID.
Section CLASS_multi_log.
Class relate_impl_multi_log :=
{
relate_impl_multi_log_eq s ι d1 d2:
relate_AbData s ι d1 d2 ->
d1.(log) = d2.(log);
relate_impl_multi_log_update s ι d1 d2:
relate_AbData s ι d1 d2 ->
forall b, relate_AbData s ι d1 {log: b} d2 {log: b}
}.
Class match_impl_multi_log :=
{
match_impl_multi_log_update ι d m f:
match_AbData ι d m f ->
forall b, match_AbData ι d {log: b} m f
}.
Class match_impl_multi_log_one R :=
{
match_impl_multi_log_one_update ι d m f z l l':
match_AbData ι d m f ->
ZMap.get z d.(log) = Some l ->
R l l' ->
match_AbData ι d {log: ZMap.set z (Some l') d.(log)} m f
}.
Global Instance match_impl_multi_log_one_match_impl_multi_log R:
match_impl_multi_log ->
match_impl_multi_log_one R.
Proof. destruct 1; constructor; eauto. Qed.
End CLASS_multi_log.
Section CLASS_multi_oracle.
Class relate_impl_multi_oracle :=
{
relate_impl_multi_oracle_eq s ι d1 d2:
relate_AbData s ι d1 d2 ->
d1.(oracle) = d2.(oracle);
relate_impl_multi_oracle_update s ι d1 d2:
relate_AbData s ι d1 d2 ->
forall b, relate_AbData s ι d1 {oracle: b} d2 {oracle: b}
}.
Class match_impl_multi_oracle :=
{
match_impl_multi_oracle_update ι d m f:
match_AbData ι d m f ->
forall b, match_AbData ι d {oracle: b} m f
}.
End CLASS_multi_oracle.
End CLASS_RELATIONS.
Ltac relate_match_instance_tac:=
split; inversion 1; eauto 2; try econstructor; eauto 2.
Hint Extern 1 relate_impl_CPU_ID =>
(relate_match_instance_tac): typeclass_instances.
Hint Extern 1 match_impl_CPU_ID =>
(relate_match_instance_tac): typeclass_instances.
Hint Extern 1 relate_impl_multi_oracle =>
(relate_match_instance_tac): typeclass_instances.
Hint Extern 1 match_impl_multi_oracle =>
(relate_match_instance_tac): typeclass_instances.
Hint Extern 1 relate_impl_multi_log =>
(relate_match_instance_tac): typeclass_instances.
Hint Extern 1 match_impl_multi_log =>
(relate_match_instance_tac): typeclass_instances.