Equations
- One or more equations did not get rendered due to their size.
Instances For
- numJoinParams : Nat
Number of join point arguments.
- altIdx : Nat
Index of the match alternative.
Parameter FVars of the match alternative.
- altLCtxIdx : Nat
The size of the local context in the alternative after the match has been split and all splitter parameters have been introduced. This is so that we can construct the
Σ Lᵢ
part of thehyps
field. - hyps : MVarId
MVar to be filled with the stateful hypotheses of the match arm. This should include bindings from the local context
Lᵢ
of the call site and is of the form (x,y,z ∈ Lᵢ
)Σ Lᵢ, ⌜x = a ∧ y = b ∧ z = c⌝ ∧ Hᵢ
, where..., Lᵢ ⊢ Hᵢ ⊢ₛ wp[jp x y z] Q
is the call site. TheΣ Lᵢ
is short for something likelet x := ...; ∃ y (h : y = ...), ∃ z, ∃ (h₂ : p)
. - joinPrf : Expr
The proof that jump sites should use to discharge
Hᵢ ⊢ₛ wp[jp a b c] Q
.
Instances For
- config : VCGen.Config
- specThms : SpecAttr.SpecTheorems
- simpCtx : Meta.Simp.Context
- simprocs : Meta.Simp.SimprocsArray
- jps : FVarIdMap JumpSiteInfo
- initialCtxSize : Nat
Instances For
- fuel : Fuel
- simpState : Meta.Simp.State
Holes of type
Invariant
that have been generated so far.The verification conditions that have been generated so far.
Instances For
Equations
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- Lean.Elab.Tactic.Do.ifOutOfFuel x k = do let s ← get match s.fuel with | Lean.Elab.Tactic.Do.Fuel.limited 0 => x | x => k
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- Lean.Elab.Tactic.Do.instMonadLiftSimpMVCGenM = { monadLift := fun {α : Type} (x : Lean.Meta.SimpM α) => Lean.Elab.Tactic.Do.liftSimpM x }
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- Lean.Elab.Tactic.Do.knownJP? jp = do let __do_lift ← read pure (Std.TreeMap.get? __do_lift.jps jp)
Instances For
Equations
- Lean.Elab.Tactic.Do.isDuplicable (Lean.Expr.bvar deBruijnIndex) = true
- Lean.Elab.Tactic.Do.isDuplicable (Lean.Expr.mvar mvarId) = true
- Lean.Elab.Tactic.Do.isDuplicable (Lean.Expr.fvar fvarId) = true
- Lean.Elab.Tactic.Do.isDuplicable (Lean.Expr.const declName us) = true
- Lean.Elab.Tactic.Do.isDuplicable (Lean.Expr.lit a) = true
- Lean.Elab.Tactic.Do.isDuplicable (Lean.Expr.sort u) = true
- Lean.Elab.Tactic.Do.isDuplicable (Lean.Expr.mdata data e_2) = Lean.Elab.Tactic.Do.isDuplicable e_2
- Lean.Elab.Tactic.Do.isDuplicable (Lean.Expr.proj typeName idx e_2) = Lean.Elab.Tactic.Do.isDuplicable e_2
- Lean.Elab.Tactic.Do.isDuplicable (Lean.Expr.lam binderName binderType body binderInfo) = false
- Lean.Elab.Tactic.Do.isDuplicable (Lean.Expr.forallE binderName binderType body binderInfo) = false
- Lean.Elab.Tactic.Do.isDuplicable (Lean.Expr.letE declName type value body nondep) = false
- Lean.Elab.Tactic.Do.isDuplicable (fn.app arg) = (fn.app arg).isAppOf `OfNat.ofNat
Instances For
TODO: Fix this when rewriting the do elaborator
Equations
- Lean.Elab.Tactic.Do.isJP n = (n.eraseMacroScopes == `__do_jp)
Instances For
Reduces (1) Prod projection functions and (2) Projs in application heads, and (3) beta reduces. Will not unfold projection functions unless further beta reduction happens.