pith. machine review for the scientific record. sign in
structure

PrimeLedgerAtom

definition
show as:
view math explainer →
module
IndisputableMonolith.NumberTheory.PrimeLedgerAtom
domain
NumberTheory
line
19 · github
papers citing
none yet

open explainer

Read the cached plain-language explainer.

open lean source

IndisputableMonolith.NumberTheory.PrimeLedgerAtom on GitHub at line 19.

browse module

All declarations in this module, on Recognition.

explainer page

A cached Ask Recognition explainer exists for this declaration.

open explainer

depends on

used by

formal source

  16
  17/-- A prime ledger atom is a prime integer together with the irreducibility
  18property appropriate to the multiplicative ledger. -/
  19structure PrimeLedgerAtom (p : ℕ) : Prop where
  20  prime : Nat.Prime p
  21  irreduciblePosting : ∀ a b : ℕ, p = a * b → a = 1 ∨ b = 1
  22
  23/-- Positive integers are the states of the multiplicative integer ledger. -/
  24def IntegerLedgerState (n : ℕ) : Prop := 0 < n
  25
  26/-- A prime number is an irreducible posting of the integer ledger. -/
  27theorem prime_is_ledger_atom {p : ℕ} (hp : Nat.Prime p) : PrimeLedgerAtom p where
  28  prime := hp
  29  irreduciblePosting := by
  30    intro a b hab
  31    have ha_dvd : a ∣ p := ⟨b, by rw [hab]⟩
  32    have ha := hp.eq_one_or_self_of_dvd a ha_dvd
  33    rcases ha with ha | ha
  34    · exact Or.inl ha
  35    · right
  36      have hb_eq : p = p * b := by
  37        simpa [ha] using hab
  38      have hb : p * b = p * 1 := by
  39        simpa using hb_eq.symm
  40      exact Nat.mul_left_cancel hp.pos hb
  41
  42/-- Ledger atoms are prime numbers. -/
  43theorem ledger_atom_is_prime {p : ℕ} (h : PrimeLedgerAtom p) : Nat.Prime p :=
  44  h.prime
  45
  46/-- Prime-ledger atom iff ordinary primality. -/
  47theorem primeLedgerAtom_iff_prime (p : ℕ) :
  48    PrimeLedgerAtom p ↔ Nat.Prime p :=
  49  ⟨ledger_atom_is_prime, prime_is_ledger_atom⟩