Lean训练数据
收藏github2023-12-22 更新2024-05-31 收录
下载链接:
https://github.com/semorrison/lean-training-data
下载链接
链接失效反馈官方服务:
资源简介:
该数据集包含从Lean库(特别是Mathlib)中提取的数据,这些数据可能对训练机器学习模型有用。数据集包括目标/策略对、声明类型、前提依赖等多种数据类型,旨在促进数据的共享和访问。
This dataset comprises data extracted from the Lean library, specifically Mathlib, which may be useful for training machine learning models. The dataset includes various types of data such as goal/strategy pairs, declaration types, and premise dependencies, aimed at facilitating data sharing and access.
创建时间:
2023-08-21
原始信息汇总
数据集概述
数据集名称
lean-training-data
数据集目的
提供工具用于从Lean库(特别是Mathlib)中提取数据,主要关注可能对训练ML模型有用的数据。
工具列表
-
declaration_types
- 功能:打印目标文件中每个导入声明的名称和类型。
- 示例用法:
lake exe declaration_types Mathlib
-
premises
- 功能:列出目标文件中每个导入声明的直接依赖项。
- 示例用法:
lake exe premises Mathlib
-
goal_comments
- 功能:编辑Lean源文件,在每个策略调用后插入注释。
- 示例用法:
lake exe goal_comments Mathlib.Logic.Hydra
-
training_data
- 功能:从库中导出所有目标/策略对,并提供额外上下文。
- 示例用法:
lake exe training_data Mathlib.Logic.Hydra
-
comment_data
- 功能:导出库中所有声明/类型/文档字符串元组,并提供额外上下文。
- 示例用法:
lake exe comment_data Mathlib.Logic.Hydra
-
tactic_benchmark
- 功能:针对库中的每个声明运行策略,跟踪运行时间和成功情况。
- 示例用法:
lake exe tactic_benchmark --aesop Mathlib.Topology.ContinuousFunction.Ordered
-
export_infotree
- 功能:将每个模块的
InfoTree导出为JSON。 - 示例用法:
lake exe export_infotree Mathlib.Logic.Hydra
- 功能:将每个模块的
使用说明
- 用户需先克隆仓库并安装
elan。 - 进入
lean-training-data目录后,运行lake exe <tool>来使用上述工具。
数据集输出
- 每个工具的输出格式和内容根据其功能有所不同,具体细节请参考各工具的详细说明。
附加资源
- 提供脚本以批量处理Mathlib数据,并将结果记录在特定目录中。
- 用户可通过
Releases获取所有工具的输出副本。
搜集汇总
数据集介绍

构建方式
Lean训练数据集的构建主要依赖于从Lean库(特别是Mathlib)中提取数据。通过一系列工具,如`declaration_types`、`premises`、`goal_comments`等,数据集从Lean库中提取了声明类型、依赖关系、目标注释等信息。这些工具通过解析Lean源代码,生成结构化的数据,便于后续的机器学习模型训练。数据集的构建过程注重细节,确保每个声明及其相关信息的准确性和完整性。
特点
该数据集的特点在于其丰富的内容和多样的数据形式。它不仅包含了Lean库中每个声明的名称和类型,还记录了声明之间的依赖关系、目标状态的变化以及战术的使用情况。数据集还提供了详细的注释信息,帮助用户理解每个声明的上下文和用途。此外,数据集支持多种输出格式,如JSON和文本格式,便于不同场景下的使用和分析。
使用方法
使用该数据集时,用户首先需要克隆GitHub仓库并安装必要的工具,如`elan`。随后,通过运行特定的Lake命令,用户可以提取所需的数据。例如,`lake exe declaration_types Mathlib`命令可以提取Mathlib库中所有声明的类型信息。数据集还提供了详细的脚本,如`scripts/training_data.sh`,用于批量处理整个Mathlib库的数据。用户可以根据需求选择不同的工具和脚本,灵活地生成和利用数据集。
背景与挑战
背景概述
Lean训练数据集是由Lean社区开发的一个工具集,旨在从Lean库(尤其是Mathlib)中提取数据,以支持机器学习模型的训练。该数据集的创建时间可追溯至Lean社区对形式化数学和定理证明自动化的持续探索。其主要研究人员和贡献者包括Lean社区的活跃成员,如Scott Morrison等。该数据集的核心研究问题在于如何从形式化数学库中提取结构化的数据,以便用于机器学习模型的训练,特别是在定理证明和数学推理领域。Lean训练数据集的出现为形式化数学与机器学习的交叉研究提供了重要的数据支持,推动了自动化定理证明和数学推理模型的发展。
当前挑战
Lean训练数据集在构建和应用过程中面临多重挑战。首先,形式化数学库中的数据结构复杂且多样化,如何有效地提取和表示这些数据以用于机器学习模型的训练是一个关键问题。其次,数据提取工具需要处理大量的声明、依赖关系和证明步骤,确保数据的完整性和一致性具有较高的技术难度。此外,数据集的构建过程中还需解决如何将形式化数学中的抽象概念转化为机器学习模型可理解的输入格式,这对数据预处理和特征工程提出了更高的要求。最后,如何确保提取的数据能够广泛共享并易于访问,也是数据集构建过程中需要克服的挑战之一。
常用场景
经典使用场景
Lean训练数据集在数学形式化验证和自动化定理证明领域具有重要应用。该数据集通过提取Lean库(尤其是Mathlib)中的声明类型、前提条件和目标注释等信息,为机器学习模型提供了丰富的训练数据。这些数据不仅包括定理的声明和类型,还涵盖了证明过程中使用的策略及其依赖关系,为研究者在形式化数学和自动化推理领域提供了宝贵的资源。
解决学术问题
Lean训练数据集解决了形式化数学中自动化定理证明的关键问题。通过提供详细的声明类型和前提条件,研究者可以更好地理解数学定理的结构和依赖关系。此外,数据集中的目标注释和策略对为机器学习模型提供了训练数据,帮助模型学习如何从给定的目标状态中选择合适的证明策略,从而推动了自动化推理技术的发展。
衍生相关工作
Lean训练数据集催生了一系列相关研究工作,尤其是在自动化定理证明和形式化数学领域。例如,LeanDojo项目利用该数据集开发了基于机器学习的定理证明工具,显著提升了自动化推理的效率。此外,许多研究者基于该数据集构建了新的训练模型和算法,进一步推动了形式化数学和自动化推理领域的前沿研究。
以上内容由遇见数据集搜集并总结生成



