Compfiles/Imo1991P5.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
9 declarations, 0 contain sorry, 0 declared as axioms
International Mathematical Olympiad 1991, Problem 5
Let ABC be a triangle and P be an interior point of ABC. Show that at least one of the angles ∠PAB, ∠PBC, ∠PCA is less than or equal to 30°.
Imports (2)
Imported by 1 file
- lemma
Imo1991P5.mul3_le_add3_div_three_pow_threeline 34 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Real,LE.le,OfNat.ofNat,HMul.hMul,HPow.hPow,Nat,HDiv.hDiv,HAdd.hAddProof uses:
Real.geom_mean_le_arith_mean3_weighted,Mathlib.Meta.NormNum.isRat_le_true,Int.ofNat,Mathlib.Meta.NormNum.IsNNRat.to_isRat,Mathlib.Meta.NormNum.IsNat.to_isNNRat,Mathlib.Meta.NormNum.isNat_ofNat,Nat.cast_zero,Mathlib.Meta.NormNum.isNNRat_div,Mathlib.Meta.NormNum.isNNRat_mul,Inv.inv,Eq.refl,Nat.cast_one,Mathlib.Meta.NormNum.isNNRat_inv_pos,Mathlib.Meta.NormNum.instAtLeastTwo,Nat.mul,Bool,Bool.true,Mathlib.Meta.NormNum.isNat_eq_true,Mathlib.Meta.NormNum.instAddMonoidWithOne',Mathlib.Meta.NormNum.IsNNRat.to_isNatand 20 more97 instances, coercions and auxiliary constants left out.
Tactic trace: 14 steps
Open to load the checked before-and-after goal states.
- lemma
Imo1991P5.map_mean3_le_mean3_map_of_concaveOnline 48 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Set,Real,ConcaveOn,Membership.mem,LE.le,HDiv.hDiv,HAdd.hAdd,OfNat.ofNat,NatProof uses:
Fin,Eq,rfl,Nat.succ,Matrix.vecCons,Matrix.vecEmpty,Finset,Finset.univ,Eq.mpr,id,congrArg,Mathlib.Meta.NormNum.isRat_le_true,Int.ofNat,Mathlib.Meta.NormNum.IsNNRat.to_isRat,Mathlib.Meta.NormNum.IsNat.to_isNNRat,Mathlib.Meta.NormNum.isNat_ofNat,Nat.cast_zero,Mathlib.Meta.NormNum.isNNRat_div,Mathlib.Meta.NormNum.isNNRat_mul,HMul.hMuland 39 more127 instances, coercions and auxiliary constants left out.
Tactic trace: 27 steps
Open to load the checked before-and-after goal states.
- lemma
Imo1991P5.one_div_two_lt_sinline 77 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Real,LT.lt,HDiv.hDiv,Real.pi,OfNat.ofNat,Nat,HMul.hMul,Real.sinProof uses:
Eq.mpr,id,Eq,congrArg,Eq.symm,Real.sin_pi_div_six,dite,Real.sin_lt_sin_of_lt_of_le_pi_div_two,le_of_not_gt,Neg.neg,Mathlib.Tactic.Linarith.lt_irrefl,Eq.mp,HAdd.hAdd,HSub.hSub,inferInstance,AddMonoidWithOne,Mathlib.Meta.NormNum.instAtLeastTwo,Mathlib.Tactic.Ring.of_eq,Mathlib.Tactic.Ring.Common.add_congr,HPow.hPowand 74 more98 instances, coercions and auxiliary constants left out.
Tactic trace: 12 steps
Open to load the checked before-and-after goal states.
- theorem
Imo1991P5.analytic_versionline 86 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Real,LE.le,OfNat.ofNat,Eq,HAdd.hAdd,Real.pi,HMul.hMul,Real.sin,Or,HDiv.hDiv,NatProof uses:
Mathlib.Tactic.Contrapose.contrapose₁,Eq.mpr,Not,And,LT.lt,Ne,id,implies_congr,Eq.trans,congr,congrArg,Eq.refl,ne_of_gt,Trans.simple,HPow.hPow,Real.sin_nonneg_of_nonneg_of_le_pi,le_of_not_gt,Mathlib.Tactic.Linarith.lt_irrefl,Eq.mp,HSub.hSuband 107 more126 instances, coercions and auxiliary constants left out.
Tactic trace: 49 steps
Open to load the checked before-and-after goal states.
- theorem
Imo1991P5.trigonometric_cevaTrigonometric Form of Ceva's Theorem line 122 sourceSource comment
Trigonometric Form of Ceva's Theoremstandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
EuclideanSpace,Real,Fin,OfNat.ofNat,Nat,AffineIndependent,ENNReal,Nat.succ,Matrix.vecCons,Matrix.vecEmpty,Eq,HMul.hMul,Real.sin,EuclideanGeometry.angleProof uses:
Ne,Function.Injective.ne,AffineIndependent.injective,of_decide_eq_true,id,Bool,Decidable.decide,Bool.true,Eq.refl,dite,Or,Eq.mpr,congrArg,EuclideanGeometry.angle_self_of_ne,Ne.symm,Real.sin_zero,Mathlib.Tactic.Ring.of_eq,Mathlib.Tactic.Ring.Common.mul_congr,HAdd.hAdd,HPow.hPowand 71 more133 instances, coercions and auxiliary constants left out.
Tactic trace: 38 steps
Open to load the checked before-and-after goal states.
theorem trigonometric_ceva (A B C P : EuclideanSpace ℝ (Fin 2)) (hABC : AffineIndependent ℝ ![A, B, C]) : Real.sin (∠ P A B) * Real.sin (∠ P B C) * Real.sin (∠ P C A) = Real.sin (∠ A B P) * Real.sin (∠ B C P) * Real.sin (∠ C A P) := by …Mentions: P
- lemma
Imo1991P5.angle_eq_angle_add_angle_of_mem_interiorline 158 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
EuclideanSpace,Real,Fin,OfNat.ofNat,Nat,AffineIndependent,ENNReal,Nat.succ,Matrix.vecCons,Matrix.vecEmpty,Membership.mem,Set,interior,ClosureOperator,convexHull,Insert.insert,Singleton.singleton,Eq,EuclideanGeometry.angle,HAdd.hAddProof uses:
AffineSubspace,affineSpan,Set.range,Top.top,Eq.mpr,Submodule,vectorSpan,id,congrArg,propext,AffineSubspace.affineSpan_eq_top_iff_vectorSpan_eq_top_of_nontrivial,AffineIndependent.vectorSpan_eq_top_of_card_eq_finrank_add_one,Fintype.card,Module.finrank,finrank_euclideanSpace,of_eq_true,Eq.trans,True,congr,Fintype.card_congr'and 109 more246 instances, coercions and auxiliary constants left out.
Tactic trace: 45 steps
Open to load the checked before-and-after goal states.
- lemma
Imo1991P5.affineIndependent_rotateline 207 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
EuclideanSpace,Real,Fin,OfNat.ofNat,Nat,AffineIndependent,ENNReal,Nat.succ,Matrix.vecCons,Matrix.vecEmptyProof uses:
Eq.mpr,Not,Collinear,Insert.insert,Set,Singleton.singleton,id,Eq,congrArg,propext,affineIndependent_iff_not_collinear_set,Set.pair_comm,Set.insert_comm,Eq.mp56 instances, coercions and auxiliary constants left out.
Tactic trace: 3 steps
Open to load the checked before-and-after goal states.
- lemma
Imo1991P5.sum_angleline 214 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
EuclideanSpace,Real,Fin,OfNat.ofNat,Nat,AffineIndependent,ENNReal,Nat.succ,Matrix.vecCons,Matrix.vecEmpty,Membership.mem,Set,interior,ClosureOperator,convexHull,Insert.insert,Singleton.singleton,Eq,HAdd.hAdd,EuclideanGeometry.angleand 1 moreProof uses:
Eq.mpr,id,congrArg,Eq.symm,EuclideanGeometry.angle_add_angle_add_angle_eq_pi,Function.Injective.ne,AffineIndependent.injective,of_decide_eq_true,Ne,Bool,Decidable.decide,Bool.true,Eq.refl, Imo1991P5.angle_eq_angle_add_angle_of_mem_interior, Imo1991P5.affineIndependent_rotate,Eq.mp,Set.pair_comm,Set.insert_comm,Mathlib.Tactic.Ring.of_eq,HMul.hMuland 9 more127 instances, coercions and auxiliary constants left out.
Tactic trace: 11 steps
Open to load the checked before-and-after goal states.
- problem
Imo1991P5.imo1991_p5line 232 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
EuclideanSpace,Real,Fin,OfNat.ofNat,Nat,AffineIndependent,ENNReal,Nat.succ,Matrix.vecCons,Matrix.vecEmpty,Membership.mem,Set,interior,ClosureOperator,convexHull,Insert.insert,Singleton.singleton,Or,LE.le,EuclideanGeometry.angleand 2 moreProof uses:
Eq,HAdd.hAdd, Imo1991P5.sum_angle,HMul.hMul,Real.sin, Imo1991P5.trigonometric_ceva, Imo1991P5.analytic_version,EuclideanGeometry.angle_nonneg113 instances, coercions and auxiliary constants left out.
Tactic trace: 3 steps
Open to load the checked before-and-after goal states.