SplitLastSeq #
This module provides a tactic splitting the last instruction off a code sequence.
Extract the written and branched address sets L_w' and L_b'' from an equality expression.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Find the postcondition Q of the Hoare triple among the hypotheses arr.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The given state expression, or the bound state identifier st if none is supplied.
Equations
- getStateExpr (some state) = state
- getStateExpr none = Lean.Expr.bvar 0
Instances For
Build the Expr describing how instruction instr updates oldState.
Equations
- getExprOfInstForR (Instr.LoadAddress r v) oldState = pure (Lean.mkAppN (Lean.Expr.const `MState.addRegister []) #[incPcExpr oldState, mkUInt64Lit r, mkUInt64Lit v])
- getExprOfInstForR (Instr.LoadImmediate r v) oldState = pure (Lean.mkAppN (Lean.Expr.const `MState.addRegister []) #[incPcExpr oldState, mkUInt64Lit r, mkUInt64Lit v])
- getExprOfInstForR (Instr.StoreWord reg dst) oldState = pure (Lean.mkAppN (Lean.Expr.const `MState.addMemory []) #[incPcExpr oldState, mkUInt64Lit reg, mkUInt64Lit dst])
- getExprOfInstForR instr oldState = Lean.throwError (Lean.toMessageData "Error while building R, the Instruction is not implemented yet\n for this feature")
Instances For
Build the Expr describing how the reflected instruction instr updates oldState.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The Expr of the type Set UInt64.
Equations
- typeSetUInt64 = Lean.mkApp (Lean.Expr.const `Set [Lean.Level.zero]) (Lean.Expr.const `UInt64 [])
Instances For
Build the Expr of the singleton set {n} of UInt64.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Build the default written-register relation expression for the last instruction.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Peel the last instruction off the current code sequence.
Equations
- tacticPeelLastInstr = Lean.ParserDescr.node `tacticPeelLastInstr 1024 (Lean.ParserDescr.nonReservedSymbol "peelLastInstr" false)