TL;DR
This paper examines how Lean 3's mathlib formalizes scalar actions using typeclasses, discusses associated challenges like compatibility and non-definitional equality, and suggests areas for future improvement.
Contribution
It provides a detailed analysis of scalar actions in Lean's mathlib, highlighting problems and solutions, and identifies directions for further development.
Findings
Typeclasses effectively model scalar actions in mathlib
Compatibility issues arise with scalar actions
Solutions involve careful handling of non-definitional equalities
Abstract
Scalar actions are ubiquitous in mathematics, and therefore it is valuable to be able to write them succinctly when formalizing. In this paper we explore how Lean 3's typeclasses are used by mathlib for scalar actions with examples, illustrate some of the problems which come up when using them such as compatibility of actions and non-definitionally-equal diamonds, and note how these problems can be solved. We outline where more work is needed in mathlib in this area.
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Code & Models
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
