Documentation

Lean.Elab.PreDefinition.WF.TerminationHint

Support for decreasing_by #

Instances For

    This function takes a user-specified decreasing_by clause (as Sytnax). If it is a decreasingByMany (a set of clauses guarded by the function name) then

    • checks that all mentioned names exist in the current declaration
    • check that at most one function from each clique is mentioned and sort the entries by function name.
    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
        • 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

            Support for termination_by notation #

            A single termination_by clause

            Instances For
              Equations

              termination_by clauses, grouped by clique

              Instances For

                A termination_by hint, as specified by the user

                Instances For
                  @[inline, reducible]

                  A termination_by hint, as applicable to a single clique

                  Equations
                  Instances For

                    Expands the syntax for a termination_by clause, checking that

                    • each function is mentioned once
                    • each function mentioned actually occurs in the current declaration
                    • if anything is specified, then all functions have a clause
                    • the else-case (_) occurs only once, and only when needed

                    NB:

                    def terminationByElement   := leading_parser ppLine >> (ident <|> hole) >> many (ident <|> hole) >> " => " >> termParser >> optional ";"
                    def terminationBy          := leading_parser ppLine >> "termination_by " >> many1chIndent terminationByElement
                    
                    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
                        • 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
                            • One or more equations did not get rendered due to their size.
                            Instances For