Documentation

Lean.Elab.Tactic.Do.VCGen.Basic

Instances For
    Equations
      Instances For
        • numJoinParams : Nat

          Number of join point arguments.

        • altIdx : Nat

          Index of the match alternative.

        • altParams : Array Expr

          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 the hyps 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 like let 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
          Instances For
            Instances For
              @[reducible, inline]
              Equations
                Instances For
                  Equations
                    Instances For
                      Equations
                        Instances For
                          def Lean.Elab.Tactic.Do.emitVC (subGoal : Expr) (name : Name) :
                          Equations
                            Instances For
                              Equations
                                Instances For
                                  def Lean.Elab.Tactic.Do.withJP {α : Type} (jp : FVarId) (info : JumpSiteInfo) :
                                  VCGenM αVCGenM α
                                  Equations
                                    Instances For
                                      Equations
                                        Instances For
                                          def Lean.Elab.Tactic.Do.withLetDeclShared {α : Type} (name : Name) (type val : Expr) (k : BoolExpr(ExprVCGenM Expr)VCGenM α) (kind : LocalDeclKind := LocalDeclKind.default) :
                                          Equations
                                            Instances For

                                              TODO: Fix this when rewriting the do elaborator

                                              Equations
                                                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.

                                                  Equations
                                                    Instances For
                                                      def Lean.Elab.Tactic.Do.mkSpecContext (optConfig lemmas : Syntax) (ignoreStarArg : Bool := false) :
                                                      Equations
                                                        Instances For