Equations
- Lean.Elab.Tactic.Do.instDecidableEqFuel.decEq (Lean.Elab.Tactic.Do.Fuel.limited a) (Lean.Elab.Tactic.Do.Fuel.limited b) = if h : a = b then h ▸ isTrue ⋯ else isFalse ⋯
- Lean.Elab.Tactic.Do.instDecidableEqFuel.decEq (Lean.Elab.Tactic.Do.Fuel.limited n) Lean.Elab.Tactic.Do.Fuel.unlimited = isFalse ⋯
- Lean.Elab.Tactic.Do.instDecidableEqFuel.decEq Lean.Elab.Tactic.Do.Fuel.unlimited (Lean.Elab.Tactic.Do.Fuel.limited n) = isFalse ⋯
- Lean.Elab.Tactic.Do.instDecidableEqFuel.decEq Lean.Elab.Tactic.Do.Fuel.unlimited Lean.Elab.Tactic.Do.Fuel.unlimited = isTrue ⋯
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
- numJoinParams : NatNumber of join point arguments. 
- altIdx : NatIndex of the match alternative. 
- Parameter FVars of the match alternative. 
- altLCtxIdx : NatThe 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 thehypsfield.
- hyps : MVarIdMVar 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] Qis the call site. TheΣ Lᵢis short for something likelet x := ...; ∃ y (h : y = ...), ∃ z, ∃ (h₂ : p).
- joinPrf : ExprThe 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 - Invariantthat 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
- Lean.Elab.Tactic.Do.emitVC subGoal name = do let m ← liftM (Lean.Meta.mkFreshExprSyntheticOpaqueMVar subGoal name) Lean.Elab.Tactic.Do.addSubGoalAsVC m.mvarId! pure m
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.