Arithmetization

Formalization of weak arithmetic and arithmetization of metamathematics. This project depends on lean4-logic.

https://iehality.github.io/Arithmetization/

Table of Contents

Usage

Add following to lakefile.lean.

require arithmetization from git "https://github.com/iehality/Arithmetization"

Structure

  • Vorspiel: Supplementary definitions and theorems for Mathlib
  • Definability: Definability of relations and functions
  • Basic: Basic theories such as ,
  • ISigmaZero: Theory
    • Exponential
  • OmegaOne: Theory
  • ISigmaOne: Theory

Definions

DefinitionNotation
axiomLO.FirstOrder.Arith.Theory.omegaOne𝛀₁

Theorems

  • Order induction

    theorem LO.FirstOrder.Arith.Model.order_induction_h
        {M : Type} [Zero M] [One M] [Add M] [Mul M] [LT M]
        [M βŠ§β‚˜* 𝐏𝐀⁻]
        {L : LO.FirstOrder.Language} [LO.FirstOrder.Language.ORing L]
        [LO.FirstOrder.Structure L M] [LO.FirstOrder.Structure.ORing L M]
        (Ξ“ : LO.Polarity) (s : β„•)
        [M βŠ§β‚˜* LO.FirstOrder.Arith.Theory.indScheme L (LO.FirstOrder.Arith.Hierarchy Ξ“ s)]
        {P : M β†’ Prop} (hP : LO.FirstOrder.Arith.Model.DefinablePred L Ξ“ s P)
        (ind : βˆ€ (x : M), (βˆ€ y < x, P y) β†’ P x) (x : M) :
        P x
    
  • Least number principle

    theorem LO.FirstOrder.Arith.Model.least_number_h
        {M : Type} [Zero M] [One M] [Add M] [Mul M] [LT M]
        [M βŠ§β‚˜* 𝐏𝐀⁻]
        {L : LO.FirstOrder.Language} [LO.FirstOrder.Language.ORing L]
        [LO.FirstOrder.Structure L M] [LO.FirstOrder.Structure.ORing L M]
        [LO.FirstOrder.Structure.Monotone L M]
        (Ξ“ : LO.Polarity) (s : β„•)
        [M βŠ§β‚˜* LO.FirstOrder.Arith.Theory.indScheme L (LO.FirstOrder.Arith.Hierarchy Ξ“ s)]
        {P : M β†’ Prop} (hP : LO.FirstOrder.Arith.Model.DefinablePred L Ξ“ s P)
        {x : M} (h : P x) :
        βˆƒ (y : M), P y ∧ βˆ€ z < y, Β¬P z
    
  • theorem LO.FirstOrder.Arith.Model.models_iSigma_iff_models_iPi
        {M : Type} [Zero M] [One M] [Add M] [Mul M] [LT M] {n : β„•} :
        M βŠ§β‚˜* 𝐈𝚺n ↔ M βŠ§β‚˜* 𝐈𝚷n
    
  • Exponential is definable in by formula

  • Nuon (number of ones) is definable in by formula

    • LO.FirstOrder.Arith.Model.nuon_defined
      theorem LO.FirstOrder.Arith.Model.nuon_defined
          {M : Type} [Zero M] [One M] [Add M] [Mul M] [LT M]
          [M βŠ§β‚˜* πˆπšΊβ‚€ + 𝛀₁]  :
          πšΊβ‚€-Function₁ LO.FirstOrder.Arith.Model.nuon via LO.FirstOrder.Arith.Model.nuonDef
      

References

  • P. HΓ‘jek, P. PudlΓ‘k, Metamathematics of First-Order Arithmetic
  • S. Cook, P. Nguyen, Logical Foundations of Proof Complexity