Compfiles/Bulgaria1998P8.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

5 declarations, 0 contain sorry, 0 declared as axioms

Bulgarian Mathematical Olympiad 1998, Problem 8

The polynomials Pₙ(x,y) for n = 1, 2, ... are defined by P₁(x,y) = 1 and Pₙ₊₁(x,y) = (x + y - 1)(y + 1)Pₙ(x,y+2) + (y - y²)Pₙ(x,y) Prove that Pₙ(x,y) = Pₙ(y,x) for all x,y,n.

Imports (3)
Imported by 1 file
  1. def Bulgaria1998P8.P line 29 source

    standard axioms: propext what this means

    Statement uses: CommRing, Nat

    2 instances, coercions and auxiliary constants left out.

  2. def Bulgaria1998P8.S helper function Sₙ₋₁(x,y) = (x + y)² - 1(x + 1)Pₙ₋₁(y+2, x+2) line 38 source

    Source comment

    helper function Sₙ₋₁(x,y) = [(x + y)² - 1](y + 1)(x + 1)Pₙ₋₁(y+2, x+2).

    L4DEL explanation

    helper function Sₙ₋₁(x,y) = (x + y)² - 1(x + 1)Pₙ₋₁(y+2, x+2).

    Sources and attribution: Pinned Lean source (47b19bbfe5f3)

    standard axioms: propext what this means

    Statement uses: CommRing, Nat

    Proof uses: Bulgaria1998P8.S.match_1, HMul.hMul, HSub.hSub, HPow.hPow, HAdd.hAdd, OfNat.ofNat, Bulgaria1998P8.P

    24 instances, coercions and auxiliary constants left out.

    def S : ℕ → R → R → R
    | n, x, y => ((x + y)^2 - 1) * (y + 1) * (x + 1) * P n (y + 2) (x + 2)
    
    /- helper function
       Tₙ₋₁(x,y) = (y - y²)(x - x²)Pₙ₋₁(y, x).
    -/

    Mentions: Bulgaria1998P8.P

  3. def Bulgaria1998P8.T helper function Tₙ₋₁(x,y) = (y - y²)(x - x²)Pₙ₋₁(y, x) line 44 source

    Source comment

    helper function Tₙ₋₁(x,y) = (y - y²)(x - x²)Pₙ₋₁(y, x).

    standard axioms: propext what this means

    Statement uses: CommRing, Nat

    Proof uses: Bulgaria1998P8.S.match_1, HMul.hMul, HSub.hSub, HPow.hPow, OfNat.ofNat, Bulgaria1998P8.P

    16 instances, coercions and auxiliary constants left out.

    def T : ℕ → R → R → R
    | n, x, y => (y - y^2) * (x - x^2) * P n y x
    
    /- helper function
       Uₙ₋₁(x,y) = (x + y - 1) [(y + 1)(x - x²)Pₙ₋₁(y + 2, x)
                               + (x + 1)(y - y²) Pₙ₋₁(y, x + 2)]
    -/

    Mentions: Bulgaria1998P8.P

  4. def Bulgaria1998P8.U helper function Uₙ₋₁(x,y) = (x + y - 1) [(y + 1)(x - x²)Pₙ₋₁(y + 2, x) + (x + 1)(y - y²) Pₙ₋₁(y, x + 2)] line 51 source

    Source comment

    helper function Uₙ₋₁(x,y) = (x + y - 1) [(y + 1)(x - x²)Pₙ₋₁(y + 2, x) + (x + 1)(y - y²) Pₙ₋₁(y, x + 2)]

    standard axioms: propext what this means

    Statement uses: CommRing, Nat

    Proof uses: Bulgaria1998P8.S.match_1, HMul.hMul, HSub.hSub, HAdd.hAdd, OfNat.ofNat, HPow.hPow, Bulgaria1998P8.P

    24 instances, coercions and auxiliary constants left out.

    def U : ℕ → R → R → R
    | n, x, y => (x + y - 1) *((y + 1)*(x - x^2) * P n (y + 2) x
                               + (x + 1) * (y - y^2) * P n y (x + 2))
    
    snip end

    Mentions: Bulgaria1998P8.P

  5. problem Bulgaria1998P8.bulgaria1998_p8 line 57 source

    standard axioms: Quot.sound, propext what this means

    Statement uses: CommRing, Nat, Eq, Bulgaria1998P8.P

    Proof uses: Nat.strong_induction_on, LT.lt, Nat.casesAuxOn, OfNat.ofNat, Eq.refl, Eq.symm, HAdd.hAdd, id, Mathlib.Tactic.Ring.of_eq, HMul.hMul, HSub.hSub, HPow.hPow, Int.rawCast, inferInstance, Ring, Int.negOfNat, Nat.rawCast, Mathlib.Tactic.Ring.Common.add_congr, Mathlib.Tactic.Ring.Common.mul_congr, Mathlib.Tactic.Ring.Common.sub_congr and 61 more

    60 instances, coercions and auxiliary constants left out.

    Tactic trace: 49 steps

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