Documentation

Init.NotationExtra

Equations
    Instances For
      def Lean.expandExplicitBindersAux (combinator : Syntax) (idents : Array Syntax) (type? : Option Syntax) (body : Syntax) :
      Equations
        Instances For
          def Lean.expandExplicitBindersAux.loop (combinator : Syntax) (idents : Array Syntax) (type? : Option Syntax) (i : Nat) (h : i idents.size) (acc : Syntax) :
          Equations
            Instances For
              def Lean.expandBrackedBindersAux (combinator : Syntax) (binders : Array Syntax) (body : Syntax) :
              Equations
                Instances For
                  def Lean.expandBrackedBindersAux.loop (combinator : Syntax) (binders : Array Syntax) (i : Nat) (h : i binders.size) (acc : Syntax) :
                  Equations
                    Instances For
                      def Lean.expandExplicitBinders (combinatorDeclName : Name) (explicitBinders body : Syntax) :
                      Equations
                        Instances For
                          def Lean.expandBrackedBinders (combinatorDeclName : Name) (bracketedExplicitBinders body : Syntax) :
                          Equations
                            Instances For
                              Equations
                                Instances For
                                  Equations
                                    Instances For
                                      Equations
                                        Instances For
                                          Equations
                                            Instances For
                                              Equations
                                                Instances For
                                                  Equations
                                                    Instances For
                                                      Equations
                                                        Instances For
                                                          Equations
                                                            Instances For
                                                              Equations
                                                                Instances For
                                                                  Equations
                                                                    Instances For
                                                                      Equations
                                                                        Instances For

                                                                          Step-wise reasoning over transitive relations.

                                                                          calc
                                                                            a = b := pab
                                                                            b = c := pbc
                                                                            ...
                                                                            y = z := pyz
                                                                          

                                                                          proves a = z from the given step-wise proofs. = can be replaced with any relation implementing the typeclass Trans. Instead of repeating the right- hand sides, subsequent left-hand sides can be replaced with _.

                                                                          calc
                                                                            a = b := pab
                                                                            _ = c := pbc
                                                                            ...
                                                                            _ = z := pyz
                                                                          

                                                                          It is also possible to write the first relation as <lhs>\n _ = <rhs> := <proof>. This is useful for aligning relation symbols, especially on longer: identifiers:

                                                                          calc abc
                                                                            _ = bce := pabce
                                                                            _ = cef := pbcef
                                                                            ...
                                                                            _ = xyz := pwxyz
                                                                          

                                                                          calc works as a term, as a tactic or as a conv tactic.

                                                                          See Theorem Proving in Lean 4 for more information.

                                                                          Equations
                                                                            Instances For

                                                                              Step-wise reasoning over transitive relations.

                                                                              calc
                                                                                a = b := pab
                                                                                b = c := pbc
                                                                                ...
                                                                                y = z := pyz
                                                                              

                                                                              proves a = z from the given step-wise proofs. = can be replaced with any relation implementing the typeclass Trans. Instead of repeating the right- hand sides, subsequent left-hand sides can be replaced with _.

                                                                              calc
                                                                                a = b := pab
                                                                                _ = c := pbc
                                                                                ...
                                                                                _ = z := pyz
                                                                              

                                                                              It is also possible to write the first relation as <lhs>\n _ = <rhs> := <proof>. This is useful for aligning relation symbols, especially on longer: identifiers:

                                                                              calc abc
                                                                                _ = bce := pabce
                                                                                _ = cef := pbcef
                                                                                ...
                                                                                _ = xyz := pwxyz
                                                                              

                                                                              calc works as a term, as a tactic or as a conv tactic.

                                                                              See Theorem Proving in Lean 4 for more information.

                                                                              Equations
                                                                                Instances For

                                                                                  Step-wise reasoning over transitive relations.

                                                                                  calc
                                                                                    a = b := pab
                                                                                    b = c := pbc
                                                                                    ...
                                                                                    y = z := pyz
                                                                                  

                                                                                  proves a = z from the given step-wise proofs. = can be replaced with any relation implementing the typeclass Trans. Instead of repeating the right- hand sides, subsequent left-hand sides can be replaced with _.

                                                                                  calc
                                                                                    a = b := pab
                                                                                    _ = c := pbc
                                                                                    ...
                                                                                    _ = z := pyz
                                                                                  

                                                                                  It is also possible to write the first relation as <lhs>\n _ = <rhs> := <proof>. This is useful for aligning relation symbols, especially on longer: identifiers:

                                                                                  calc abc
                                                                                    _ = bce := pabce
                                                                                    _ = cef := pbcef
                                                                                    ...
                                                                                    _ = xyz := pwxyz
                                                                                  

                                                                                  calc works as a term, as a tactic or as a conv tactic.

                                                                                  See Theorem Proving in Lean 4 for more information.

                                                                                  Equations
                                                                                    Instances For

                                                                                      Apply function extensionality and introduce new hypotheses. The tactic funext will keep applying the funext lemma until the goal target is not reducible to

                                                                                        |-  ((fun x => ...) = (fun x => ...))
                                                                                      

                                                                                      The variant funext h₁ ... hₙ applies funext n times, and uses the given identifiers to name the new hypotheses. Patterns can be used like in the intro tactic. Example, given a goal

                                                                                        |-  ((fun x : Nat × Bool => ...) = (fun x => ...))
                                                                                      

                                                                                      funext (a, b) applies funext once and performs pattern matching on the newly introduced pair.

                                                                                      Equations
                                                                                        Instances For

                                                                                          Expands

                                                                                          class abbrev C <params> := D_1, ..., D_n
                                                                                          

                                                                                          into

                                                                                          class C <params> extends D_1, ..., D_n
                                                                                          attribute [instance] C.mk
                                                                                          
                                                                                          Equations
                                                                                            Instances For
                                                                                              Equations
                                                                                                Instances For

                                                                                                  · tac focuses on the main goal and tries to solve it using tac, or else fails.

                                                                                                  Equations
                                                                                                    Instances For

                                                                                                      Similar to first, but succeeds only if one the given tactics solves the current goal.

                                                                                                      Equations
                                                                                                        Instances For

                                                                                                          { a, b, c } syntax, powered by the Singleton and Insert typeclasses.

                                                                                                          Conventions for notations in identifiers:

                                                                                                          • The recommended spelling of {x} in identifiers is singleton.
                                                                                                          Equations
                                                                                                            Instances For

                                                                                                              Unexpander for the { x } notation.

                                                                                                              Equations
                                                                                                                Instances For

                                                                                                                  Unexpander for the { x, y, ... } notation.

                                                                                                                  Equations
                                                                                                                    Instances For