Compfiles/Imo1981P6.lean

GitHub source file

Explanation legend Lean4 Domain Explanation Language (L4DEL)

L4DEL explanations are a separate layer. They do not change the Lean source. Intuition is explanatory prose; numbered items are a reading path; sources link the wording back to evidence.

L4DEL
Lean4 Domain Explanation Language

Credit: The upstream authors and contributors retain credit for the project and mathematics. lean4-explainer only renders their pinned source and adds the separately disclosed explanation layer.

Project sources: Pinned compfiles documentation, Pinned compfiles corpus index

3 declarations, 0 contain sorry, 0 declared as axioms

International Mathematical Olympiad 1981, Problem 6

Suppose that f : ℕ × ℕ → ℕ satisfies

  1. f (0, y) = y + 1
  2. f (x + 1, 0) = f (x, 1),
  3. f (x + 1, y + 1) = f (x, f (x + 1, y))

for all x y ∈ ℕ.

Determine f (4, 1981).

Imports (2)
Imported by 1 file
  1. def Imo1981P6.no_eval Wrapper to prevent the Lean kernel from eagerly trying to normalize the solution value, which happens to be way too large to normalize line 39 source

    Source documentation

    Wrapper to prevent the Lean kernel from eagerly trying to normalize the solution value, which happens to be way too large to normalize.

    no axioms what this means

    Statement uses: Nat

    def no_eval (x : ℕ) : ℕ := x
    …
  2. determine Imo1981P6.solution_value line 43 source

    standard axioms: propext what this means

    Statement uses: Nat

    Proof uses: Imo1981P6.no_eval, HSub.hSub, Nat.iterate, HPow.hPow, OfNat.ofNat

    7 instances, coercions and auxiliary constants left out.

  3. problem Imo1981P6.imo1981_p6 line 45 source

    standard axioms: Classical.choice, Quot.sound, propext what this means

    Statement uses: Nat, Eq, OfNat.ofNat, HAdd.hAdd, Imo1981P6.solution_value

    Proof uses: Nat.strongRecOn, LT.lt, Nat.casesAuxOn, of_eq_true, Eq.trans, True, congr, congrArg, zero_add, eq_self, Eq.symm, Eq.mpr, id, Nat.lt_add_one, Eq.refl, HMul.hMul, Nat.recAux, congrFun', MulZeroClass.mul_zero, Mathlib.Tactic.Ring.of_eq and 33 more

    50 instances, coercions and auxiliary constants left out.

    Tactic trace: 42 steps

    Open to load the checked before-and-after goal states.