@[simp]
@[simp]
@[simp]
@[simp]
@[simp]
@[simp]
theorem
MState.addRegister_getRegister_neq
(ms : MState)
(r1 r2 v : UInt64)
:
r1 ≠ r2 → (x[r1] ← v ; ms).getRegisterAt r2 = ms.getRegisterAt r2
@[simp]
@[simp]
@[simp]
@[simp]
@[simp]
@[simp]
theorem
MState.runNSteps_currInstruction
(ms : MState)
(n : ℕ)
:
(ms.runNSteps n).currInstruction = TMap.get (ms.runNSteps n).code.instructionMap (ms.runNSteps n).pc
@[simp]
@[simp]
@[simp]
@[simp]
@[simp]
@[simp]
@[simp]
@[simp]
@[simp]
theorem
MState.get_register_only_register'
(ms : MState)
(m : Memory)
(r : Registers)
(c : Code)
(terminated : Bool)
(i p : UInt64)
:
{ memory := m, registers := r, pc := p, code := c, terminated := terminated }.getRegisterAt i = { memory := ms.memory, registers := r, pc := ms.pc, code := ms.code, terminated := ms.terminated }.getRegisterAt i
@[simp]
@[simp]
theorem
MState.get_register_only_memory'
(ms : MState)
(m : Memory)
(r : Registers)
(c : Code)
(terminated : Bool)
(i p : UInt64)
:
{ memory := m, registers := r, pc := p, code := c, terminated := terminated }.getMemoryAt i = { memory := m, registers := ms.registers, pc := ms.pc, code := ms.code, terminated := ms.terminated }.getMemoryAt i
@[simp]
@[simp]
@[simp]
@[simp]
@[simp]
@[simp]