Compfiles/Bulgaria1998P8.lean
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.
Imported by 1 file
- def
Bulgaria1998P8.Pline 29 sourcestandard axioms: propext what this means
Statement uses:
CommRing,Nat2 instances, coercions and auxiliary constants left out.
- def
Bulgaria1998P8.Shelper function Sₙ₋₁(x,y) = (x + y)² - 1(x + 1)Pₙ₋₁(y+2, x+2) line 38 sourceSource 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,NatProof uses:
Bulgaria1998P8.S.match_1,HMul.hMul,HSub.hSub,HPow.hPow,HAdd.hAdd,OfNat.ofNat, Bulgaria1998P8.P24 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
- def
Bulgaria1998P8.Thelper function Tₙ₋₁(x,y) = (y - y²)(x - x²)Pₙ₋₁(y, x) line 44 sourceSource comment
helper function Tₙ₋₁(x,y) = (y - y²)(x - x²)Pₙ₋₁(y, x).standard axioms: propext what this means
Statement uses:
CommRing,NatProof uses:
Bulgaria1998P8.S.match_1,HMul.hMul,HSub.hSub,HPow.hPow,OfNat.ofNat, Bulgaria1998P8.P16 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
- def
Bulgaria1998P8.Uhelper 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 sourceSource 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,NatProof uses:
Bulgaria1998P8.S.match_1,HMul.hMul,HSub.hSub,HAdd.hAdd,OfNat.ofNat,HPow.hPow, Bulgaria1998P8.P24 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 endMentions: Bulgaria1998P8.P
- problem
Bulgaria1998P8.bulgaria1998_p8line 57 sourcestandard axioms: Quot.sound, propext what this means
Statement uses:
CommRing,Nat,Eq, Bulgaria1998P8.PProof 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_congrand 61 more60 instances, coercions and auxiliary constants left out.
Tactic trace: 49 steps
Open to load the checked before-and-after goal states.