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

4 declarations, 0 contain sorry, 0 declared as axioms

USA Mathematical Olympiad 1987, Problem 3

X is the smallest set of polynomials p(x) such that: (1) p(x) = x belongs to X; and (2) if r(x) belongs to X, then x·r(x) and (x + (1 - x)·r(x)) both belong to X.

Show that if r(x) and s(x) are distinct elements of X, then r(x) ≠ s(x) for any 0 < x < 1.

Imports (3)
Imported by 1 file
  1. inductive Usa1987P3.InX Documented declaration: InX line 37 source

    Source documentation

    The set X of the problem, as an inductive predicate: it is the smallest set of polynomials that contains the identity polynomial X and is closed under the two operations r ↦ X * r and r ↦ X + (1 - X) * r.

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

    Statement uses: Polynomial, Real

    1 instances, coercions and auxiliary constants left out.

    inductive InX : Polynomial ℝ → Prop
      | base : InX X
      | mul {r : Polynomial ℝ} (hr : InX r) : InX (X * r)
      | comb {r : Polynomial ℝ} (hr : InX r) : InX (X + (1 - X) * r)
    
    /-- Every polynomial of `X` maps the open interval `(0, 1)` into itself. -/

    Mentions: base

  2. lemma Usa1987P3.InX.eval_mem_Ioo Every polynomial of X maps the open interval (0, 1) into itself line 43 source

    Source documentation

    Every polynomial of X maps the open interval (0, 1) into itself.

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

    Statement uses: Polynomial, Real, Usa1987P3.InX, LT.lt, OfNat.ofNat, And, Polynomial.eval

    Proof uses: Usa1987P3.InX.rec, Eq.mpr, Polynomial.X, id, Eq, congrArg, Polynomial.eval_X, And.intro, HMul.hMul, congr, Eq.trans, Polynomial.eval_mul, congrFun', mul_pos, And.left, LT.lt.trans, LT.lt.trans_eq, mul_lt_mul_of_pos_left, And.right, mul_one and 11 more

    79 instances, coercions and auxiliary constants left out.

    Tactic trace: 9 steps

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

    lemma InX.eval_mem_Ioo {r : Polynomial ℝ} (hr : InX r)
        {x : ℝ} (hx0 : 0 < x) (hx1 : x < 1) :
        0 < r.eval x ∧ r.eval x < 1 := by
    …

    Mentions: Usa1987P3.InX

  3. lemma Usa1987P3.InX.trichotomy The key trichotomy: two elements of X are either equal as polynomials, or one of them is strictly smaller than the other throughout the whole open interval (0, 1) line 67 source

    Source documentation

    The key trichotomy: two elements of X are either equal as polynomials, or one of them is strictly smaller than the other throughout the whole open interval (0, 1). The proof goes by induction on the construction of r and case analysis on the construction of s; it is a form of lexicographic comparison of the operation sequences (cf. the informal solution, where + counts as larger than "no further operation", which in turn counts as larger than -).

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

    Statement uses: Polynomial, Real, Usa1987P3.InX, Or, Eq, LT.lt, OfNat.ofNat, Polynomial.eval

    Proof uses: Usa1987P3.InX.rec, HEq, Polynomial.X, Usa1987P3.InX.base, Or.inl, rfl, Eq.symm, HMul.hMul, Usa1987P3.InX.mul, Or.inr, Eq.mpr, id, congr, congrArg, Eq.trans, Polynomial.eval_mul, congrFun', Polynomial.eval_X, LT.lt.trans_eq, mul_lt_mul_of_pos_left and 19 more

    77 instances, coercions and auxiliary constants left out.

    Tactic trace: 54 steps

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

    lemma InX.trichotomy {r : Polynomial ℝ} (hr : InX r) :
        ∀ {s : Polynomial ℝ}, InX s →
          r = s ∨ (∀ x : ℝ, 0 < x → x < 1 → r.eval x < s.eval x) ∨
                  (∀ x : ℝ, 0 < x → x < 1 → s.eval x < r.eval x) := by
    …

    Mentions: Usa1987P3.InX

  4. problem Usa1987P3.usa1987_p3 line 135 source

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

    Statement uses: Set, Polynomial, Real, Membership.mem, Polynomial.X, HMul.hMul, HAdd.hAdd, HSub.hSub, OfNat.ofNat, LE.le, Ne, LT.lt, Polynomial.eval

    Proof uses: Set.ofPred, Usa1987P3.InX, Usa1987P3.InX.base, Usa1987P3.InX.mul, Usa1987P3.InX.comb, Eq, Or, Usa1987P3.InX.trichotomy, absurd, ne_of_lt, ne_of_gt

    34 instances, coercions and auxiliary constants left out.

    Tactic trace: 8 steps

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