Documentation

Lean.Meta.Tactic.Intro

Similar to mkFreshUserName, but takes into account tactic.hygienic option value. If tactic.hygienic = true, then the current macro scopes are applied to binderName. If not, then an unused (accessible) name (based on binderName) in the local context is used.

Equations
  • One or more equations did not get rendered due to their size.
Instances For
    def Lean.Meta.introNCore (mvarId : Lean.MVarId) (n : Nat) (givenNames : List Lean.Name) (useNamesForExplicitOnly preserveBinderNames : Bool) :
    Equations
    • One or more equations did not get rendered due to their size.
    Instances For
      @[reducible, inline]
      abbrev Lean.MVarId.introN (mvarId : Lean.MVarId) (n : Nat) (givenNames : List Lean.Name := []) (useNamesForExplicitOnly : Bool := false) :

      Introduce n binders in the goal mvarId.

      Equations
      Instances For
        @[reducible, inline]

        Introduce n binders in the goal mvarId. The new hypotheses are named using the binder names. The suffix P stands for "preserving`.

        Equations
        Instances For

          Introduce one binder using name as the new hypothesis name.

          Equations
          • mvarId.intro name = do let __discrmvarId.introN 1 [name] match __discr with | (fvarIds, mvarId) => pure (fvarIds[0]!, mvarId)
          Instances For
            def Lean.Meta.intro1Core (mvarId : Lean.MVarId) (preserveBinderNames : Bool) :
            Equations
            • One or more equations did not get rendered due to their size.
            Instances For
              @[reducible, inline]

              Introduce one object from the goal mvarid, without preserving the name used in the binder. Returns a pair made of the newly introduced variable (which will have an inaccessible name) and the new goal. This will fail if there is nothing to introduce, ie when the goal does not start with a forall, lambda or let.

              Equations
              Instances For
                @[reducible, inline]

                Introduce one object from the goal mvarid, preserving the name used in the binder. Returns a pair made of the newly introduced variable and the new goal. This will fail if there is nothing to introduce, ie when the goal does not start with a forall, lambda or let.

                Equations
                Instances For

                  Calculate the number of new hypotheses that would be created by intros, i.e. the number of binders which can be introduced without unfolding definitions.

                  Introduce as many binders as possible without unfolding definitions.

                  Equations
                  Instances For