Documentation

FormalConjectures.Util.Attributes

Problem Formalisation Attributes #

The Category Attribute: #

Overview #

Provides information of the type of a statement. This can be:

Values #

The values of this attribute are

Usage examples #

The tag should be used as follows:

@[category high_school]
theorem imo_2024_p6
    (IsAquaesulian : (ℚ → ℚ) → Prop)
    (IsAquaesulian_def : ∀ f, IsAquaesulian f ↔
      ∀ x y, f (x + f y) = f x + y ∨ f (f x + y) = x + f y) :
    IsLeast {(c : ℤ) | ∀ f, IsAquaesulian f → {(f r + f (-r)) | (r : ℚ)}.Finite ∧
      {(f r + f (-r)) | (r : ℚ)}.ncard ≤ c} 2 := by
  sorry

@[category research open]
theorem an_open_problem : Transcendental ℝ (π + rexp 1) := by
  sorry

@[category test]
theorem a_test_to_sanity_check_some_definition : ¬ FermatLastTheoremWith 1 := by
  sorry

The Problem Subject Attribute #

Provides information about the subject of a mathematical problem, via a numeral corresponding to the AMS subject classification of the problem. This can be used as follows:

@[AMS 11] -- 11 correponds to Number Theory in the AMS classification
theorem FLT : FermatLastTheorem := by
  sorry

The complete list of subjects can be found here: https://mathscinet.ams.org/mathscinet/msc/pdfs/classifications2020.pdf

In order to access the list from within a Lean file, use the #AMS command.

Note: the current implementation of the attribute includes all the main categories in the AMS classification for completeness. Some are not relevant to this repository.

  • open : ProblemStatus

    Indicates that a mathematical problem is still open.

  • solved : ProblemStatus

    Indicates that a mathematical problem is already solved, i.e., there is a published (informal) proof that is widely accepted by experts.

Instances For
    Equations
    • One or more equations did not get rendered due to their size.
    Instances For

      A type to capture the various types of statements that appear in our Lean files.

      • highSchool : Category

        A high school level math problem.

      • undergraduate : Category

        An undegraduate level math problem.

      • graduate : Category

        A graduate level math problem.

      • research : ProblemStatusCategory

        A reseach level math problem. This can be open, or already solved

      • test : Category

        A test statement that serves as a sanity check (e.g. for a new definition)

      • API : Category

        An "API" statement, i.e. a statement that constructs basic theory around a new definition

      Instances For
        Equations
        • One or more equations did not get rendered due to their size.
        Instances For
          • declName : Lean.Name

            The name of the declaration with the given tag.

          • category : Category

            The status of the problem.

          • informal : String

            The (optional) comment that comes with the given declaration.

          Instances For

            Defines the categoryExt extension for adding a HashSet of Tags to the environment.

            def ProblemAttributes.addCategoryEntry {m : TypeType} [Lean.MonadEnv m] (declName : Lean.Name) (cat : Category) (comment : String) :
            Equations
            • One or more equations did not get rendered due to their size.
            Instances For
              • declName : Lean.Name

                The name of the declaration with the given tag.

              • subjects : List AMS

                The subject(s) of the problem.

              • informal : String

                The (optional) comment that comes with the given declaration.

              Instances For

                Defines the tagExt extension for adding a HashSet of Tags to the environment.

                def ProblemAttributes.addSubjectEntry {m : TypeType} [Lean.MonadEnv m] (name : Lean.Name) (subjects : List AMS) (informal : String) :
                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
                    def ProblemAttributes.Syntax.toSubjects (stx : Lean.TSyntax `ProblemAttributes.subjectList) :

                    Converts a syntax node to an array of AMS subjects.

                    This also annotates the every natural number litteral encountered, with the description of the corresponding AMS subject (i.e. hovering over the number in VS Code will show the subject.)

                    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