Analysis I, Appendix B.1: The decimal representation of natural numbers #
Am implementation of the decimal representation of Mathlib's natural numbers ℕ.
This is separate from the way decimal numerals are already represenated in Mathlib via the OfNat typeclass.
Equations
Equations
Equations
- AppendixB.Digit.instTwo = { ofNat := ⟨2, AppendixB.Digit.instTwo._proof_1⟩ }
Equations
- AppendixB.Digit.instThree = { ofNat := ⟨3, AppendixB.Digit.instThree._proof_1⟩ }
Equations
- AppendixB.Digit.instFour = { ofNat := ⟨4, AppendixB.Digit.instFour._proof_1⟩ }
Equations
- AppendixB.Digit.instFive = { ofNat := ⟨5, AppendixB.Digit.instFive._proof_1⟩ }
Equations
- AppendixB.Digit.instSix = { ofNat := ⟨6, AppendixB.Digit.instSix._proof_1⟩ }
Equations
- AppendixB.Digit.instSeven = { ofNat := ⟨7, AppendixB.Digit.instSeven._proof_1⟩ }
Equations
- AppendixB.Digit.instEight = { ofNat := ⟨8, AppendixB.Digit.instEight._proof_1⟩ }
Equations
- AppendixB.Digit.instNine = { ofNat := ⟨9, AppendixB.Digit.instNine._proof_1⟩ }
Equations
Equations
Equations
- AppendixB.Digit.instInhabited = { default := 0 }
Equations
@[reducible, inline]
Instances For
A slightly clunky way of creating decimals.
Equations
- AppendixB.PosintDecimal.mk' head tail h = { digits := head :: tail, nonempty := ⋯, nonzero := h }
Instances For
Equations
@[reducible, inline]
An operation implicit in the proof of Theorem B.1.4:
Instances For
@[simp]
theorem
AppendixB.PosintDecimal.eq_append
{p : PosintDecimal}
(h : 2 ≤ p.digits.length)
:
∃ (q : PosintDecimal) (d : Digit), p = q.append d
Theorem B.1.4 (Uniqueness and existence of decimal representations)
- zero : IntDecimal
- pos : PosintDecimal → IntDecimal
- neg : PosintDecimal → IntDecimal
Instances For
Equations
- AppendixB.IntDecimal.zero.toInt = 0
- (AppendixB.IntDecimal.pos p).toInt = ↑↑p
- (AppendixB.IntDecimal.neg p).toInt = -↑↑p
Instances For
Equations
Exercise B.1.1
Define this number such that it satisfies the two following theorems.
Equations
- p.sum_digit_top q = sorry
Instances For
theorem
AppendixB.PosintDecimal.out_of_range_eq_zero
(p q : PosintDecimal)
(i : ℕ)
:
i > p.sum_digit_top q → p.sum_digit q i = 0
Equations
- p.longAddition q = { digits := sorry, nonempty := AppendixB.PosintDecimal.longAddition._proof_1, nonzero := AppendixB.PosintDecimal.longAddition._proof_2 }