コンテンツにスキップ

Mathlib の命名規則

Mathlib の名前には強い規則性があります. 命名規則を知っていると,補題を推測したり,検索結果を読むのが楽になります.

基本方針は次の通りです.

  • 定理名や証明項は snake_case: add_comm, mul_assoc, not_le_of_gt
  • 型,命題,structure,クラスは UpperCamelCase: Finset, MonoidHom, LinearOrder
  • 通常のデータや関数は lowerCamelCase
  • 名前空間はドットで表す: Nat.succ_ne_zero, Set.mem_inter_iff
  • 写像が構造を保つ補題は map_add, map_mul, map_zero のような名前になりやすい

ただし,古い名前や歴史的事情による例外もあります. 命名規則は検索の手がかりであって,完全な規格ではありません.

#check Nat.succ_ne_zero
#check Set.mem_inter_iff
#check Set.mem_union
#check add_comm
#check mul_assoc
#check map_add

記号に対応する語もある程度決まっています. たとえば,meminterunionle<ltiff です. したがって,集合の所属条件を探すときには mem_intermem_union のような名前を予想できます.

また,定理名では結論が先に来ることがよくあります. たとえば not_le_of_gt は「> から ¬ ≤ が従う」と読みます. この名前は,結論 not_le と仮定 of_gt に分けて読むと分かりやすくなります.

#check not_le_of_gt
#check lt_of_le_of_ne

命名規則は公式の Mathlib naming conventions に整理されています. 新しい補題名を探すときは,記号を英語名に直し,名前空間と結論の形から推測するのが有効です.

演習

命名規則を使って,次の補題名を予想し,#check で確認してください.

#check Set.mem_inter_iff
#check Set.mem_union
#check not_le_of_gt
#check lt_of_le_of_ne