Compfiles/Imo2014P6.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
133 declarations, 0 contain sorry, 0 declared as axioms
International Mathematical Olympiad 2014, Problem 6
A set of lines in the plane is in general position if no two are parallel and no three pass through the same point. A set of lines in general position cuts the plane into regions, some of which have finite area; we call these its finite regions. Prove that for all sufficiently large n, in any set of n lines in general position it is possible to colour at least √n lines blue in such a way that none of its finite regions has a completely blue boundary.
Imports (7)
Imported by 1 file
- structure
Imo2014P6.LineA line in the planeℝ × ℝ, given by the equationa * x + b * y + c = 0with(a, b) ≠ (0, 0)line 37 sourceSource documentation
A line in the plane
ℝ × ℝ, given by the equationa * x + b * y + c = 0with(a, b) ≠ (0, 0).standard axioms: Classical.choice, Quot.sound, propext what this means
structure Line where …
- instance
Imo2014P6.(instance at line 43)line 43 source - def
Imo2014P6.Line.valThe affine function whose zero set is the line line 48 sourceSource documentation
The affine function whose zero set is the line.
standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses: Imo2014P6.Line,
Prod,RealProof uses:
HAdd.hAdd,HMul.hMul,Imo2014P6.Line.a,Prod.fst,Imo2014P6.Line.b,Prod.snd,Imo2014P6.Line.c4 instances, coercions and auxiliary constants left out.
def val (ℓ : Line) (p : ℝ × ℝ) : ℝ := ℓ.a * p.1 + ℓ.b * p.2 + ℓ.c
Mentions: Imo2014P6.Line
- def
Imo2014P6.Line.setThe line as a set of points line 51 sourceSource documentation
The line as a set of points.
standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses: Imo2014P6.Line,
Set,Prod,RealProof uses:
Set.ofPred,Eq, Imo2014P6.Line.val,OfNat.ofNat2 instances, coercions and auxiliary constants left out.
def set (ℓ : Line) : Set (ℝ × ℝ) := {p | ℓ.val p = 0}Mentions: Imo2014P6.Line
- def
Imo2014P6.Line.detThe determinant of the two normals; nonzero iff the lines are not parallel line 54 sourceSource documentation
The determinant of the two normals; nonzero iff the lines are not parallel.
standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses: Imo2014P6.Line,
RealProof uses:
HSub.hSub,HMul.hMul,Imo2014P6.Line.a,Imo2014P6.Line.b4 instances, coercions and auxiliary constants left out.
def det (ℓ m : Line) : ℝ := ℓ.a * m.b - m.a * ℓ.b
Mentions: Imo2014P6.Line
- def
Imo2014P6.Line.interPtThe intersection point of two non-parallel lines line 57 sourceSource documentation
The intersection point of two non-parallel lines.
standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses: Imo2014P6.Line,
Prod,RealProof uses:
Prod.mk,HDiv.hDiv,HSub.hSub,HMul.hMul,Imo2014P6.Line.b,Imo2014P6.Line.c, Imo2014P6.Line.det,Imo2014P6.Line.a7 instances, coercions and auxiliary constants left out.
noncomputable def interPt (ℓ m : Line) : ℝ × ℝ := …
Mentions: Imo2014P6.Line
- def
Imo2014P6.GeneralPositionA set of lines is in general position if no two are parallel and no three pass through the same point line 64 sourceSource documentation
A set of lines is in general position if no two are parallel and no three pass through the same point.
standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Finset, Imo2014P6.LineProof uses:
And,Membership.mem,Ne,Real, Imo2014P6.Line.det,OfNat.ofNat, Imo2014P6.Line.val, Imo2014P6.Line.interPt4 instances, coercions and auxiliary constants left out.
def GeneralPosition (L : Finset Line) : Prop := …
Mentions: Imo2014P6.Line
- def
Imo2014P6.sgnThe sign±1attached to a side of a line line 69 sourceSource documentation
The sign
±1attached to a side of a line.standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Bool,RealProof uses:
ite,Eq,Bool.true,OfNat.ofNat,Neg.neg4 instances, coercions and auxiliary constants left out.
def sgn (b : Bool) : ℝ := if b then 1 else -1
- def
Imo2014P6.CellThe cell of a sign vectorσ: the set of points lying on the prescribed side of every line ofLline 75 sourceSource documentation
The cell of a sign vector
σ: the set of points lying on the prescribed side of every line ofL. The nonempty cells are exactly the regions into which the lines ofLcut the plane, and the bounded nonempty cells are its finite regions.standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Finset, Imo2014P6.Line,Bool,Set,Prod,RealProof uses:
Set.ofPred,Membership.mem,GT.gt,HMul.hMul, Imo2014P6.sgn, Imo2014P6.Line.val,OfNat.ofNat7 instances, coercions and auxiliary constants left out.
def Cell (L : Finset Line) (σ : Line → Bool) : Set (ℝ × ℝ) := …
Mentions: Imo2014P6.Line
- lemma
Imo2014P6.Line.val_interPt_leftline 107 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses: Imo2014P6.Line,
Ne,Real, Imo2014P6.Line.det,OfNat.ofNat,Eq, Imo2014P6.Line.val, Imo2014P6.Line.interPtProof uses:
HAdd.hAdd,HMul.hMul,Imo2014P6.Line.a,HSub.hSub,Imo2014P6.Line.b,Imo2014P6.Line.c,id,Mathlib.Tactic.Ring.of_eq,Mathlib.Tactic.Ring.Common.add_congr,HPow.hPow,Nat,Nat.rawCast,Int.rawCast,inferInstance,Ring,Int.negOfNat,Mathlib.Tactic.Ring.Common.mul_congr,Mathlib.Tactic.Ring.Common.atom_pf,rfl,Eq.mprand 42 more59 instances, coercions and auxiliary constants left out.
Tactic trace: 8 steps
Open to load the checked before-and-after goal states.
- lemma
Imo2014P6.Line.val_interPt_rightline 118 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses: Imo2014P6.Line,
Ne,Real, Imo2014P6.Line.det,OfNat.ofNat,Eq, Imo2014P6.Line.val, Imo2014P6.Line.interPtProof uses:
HAdd.hAdd,HMul.hMul,Imo2014P6.Line.a,HSub.hSub,Imo2014P6.Line.b,Imo2014P6.Line.c,id,Mathlib.Tactic.Ring.of_eq,Mathlib.Tactic.Ring.Common.add_congr,HPow.hPow,Nat,Nat.rawCast,Int.rawCast,inferInstance,Ring,Int.negOfNat,Mathlib.Tactic.Ring.Common.mul_congr,Mathlib.Tactic.Ring.Common.atom_pf,rfl,Eq.mprand 42 more59 instances, coercions and auxiliary constants left out.
Tactic trace: 8 steps
Open to load the checked before-and-after goal states.
- lemma
Imo2014P6.Line.eq_interPtline 129 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses: Imo2014P6.Line,
Ne,Real, Imo2014P6.Line.det,OfNat.ofNat,Prod,Eq, Imo2014P6.Line.val, Imo2014P6.Line.interPtProof uses:
HSub.hSub,HMul.hMul,Imo2014P6.Line.a,Imo2014P6.Line.b,HAdd.hAdd,Prod.fst,Prod.snd,Neg.neg,Imo2014P6.Line.c,Mathlib.Tactic.Linarith.eq_of_not_lt_of_not_gt,Not.intro,LT.lt,Mathlib.Tactic.Linarith.lt_irrefl,Eq.mp,congrArg,Mathlib.Tactic.Ring.of_eq,Mathlib.Tactic.Ring.Common.add_congr,HPow.hPow,Nat,Nat.rawCastand 57 more85 instances, coercions and auxiliary constants left out.
Tactic trace: 22 steps
Open to load the checked before-and-after goal states.
- def
Imo2014P6.Line.baseA distinguished point on the line: the foot of the perpendicular from the origin line 149 sourceSource documentation
A distinguished point on the line: the foot of the perpendicular from the origin.
standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses: Imo2014P6.Line,
Prod,RealProof uses:
Prod.mk,HDiv.hDiv,HMul.hMul,Neg.neg,Imo2014P6.Line.c,Imo2014P6.Line.a,HAdd.hAdd,HPow.hPow,Nat,OfNat.ofNat,Imo2014P6.Line.b13 instances, coercions and auxiliary constants left out.
noncomputable def base (ℓ : Line) : ℝ × ℝ := …
Mentions: Imo2014P6.Line
- def
Imo2014P6.Line.dirA direction vector of the line: the normal(a, b)rotated by 90 degrees line 153 sourceSource documentation
A direction vector of the line: the normal
(a, b)rotated by 90 degrees.standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses: Imo2014P6.Line,
Prod,RealProof uses:
Prod.mk,Neg.neg,Imo2014P6.Line.b,Imo2014P6.Line.a1 instances, coercions and auxiliary constants left out.
def dir (ℓ : Line) : ℝ × ℝ := (-ℓ.b, ℓ.a)
Mentions: Imo2014P6.Line
- def
Imo2014P6.Line.paramThe standard parametrization of the line byℝline 156 sourceSource documentation
The standard parametrization of the line by
ℝ.standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses: Imo2014P6.Line,
Real,ProdProof uses:
Prod.mk,HAdd.hAdd,Prod.fst, Imo2014P6.Line.base,HMul.hMul, Imo2014P6.Line.dir,Prod.snd4 instances, coercions and auxiliary constants left out.
noncomputable def param (ℓ : Line) (t : ℝ) : ℝ × ℝ := …
Mentions: Imo2014P6.Line
- lemma
Imo2014P6.Line.sq_add_sq_posline 159 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses: Imo2014P6.Line,
LT.lt,Real,OfNat.ofNat,HAdd.hAdd,HPow.hPow,Nat,Imo2014P6.Line.a,Imo2014P6.Line.bProof uses:
Ne,Or,Imo2014P6.Line.hab,sq_pos_of_ne_zero,lt_of_not_ge,LE.le,Mathlib.Tactic.Linarith.lt_irrefl,Eq.mp,HSub.hSub,congrArg,Mathlib.Tactic.Ring.of_eq,Mathlib.Tactic.Ring.Common.add_congr,HMul.hMul,Nat.rawCast,Int.rawCast,inferInstance,Ring,Int.negOfNat,Mathlib.Tactic.Ring.Common.sub_congr,Mathlib.Tactic.Ring.cast_zeroand 48 more74 instances, coercions and auxiliary constants left out.
Tactic trace: 7 steps
Open to load the checked before-and-after goal states.
- lemma
Imo2014P6.Line.val_baseline 166 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses: Imo2014P6.Line,
Eq,Real, Imo2014P6.Line.val, Imo2014P6.Line.base,OfNat.ofNatProof uses:
Ne,HAdd.hAdd,HPow.hPow,Nat,Imo2014P6.Line.a,Imo2014P6.Line.b,ne_of_gt, Imo2014P6.Line.sq_add_sq_pos,id,Eq.mpr,HMul.hMul,HDiv.hDiv,Neg.neg,Imo2014P6.Line.c,inferInstance,CommGroupWithZero,GroupWithZero,Mathlib.Tactic.FieldSimp.eq_eq_cancel_eq,Mathlib.Tactic.FieldSimp.NF.eval,Mathlib.Tactic.FieldSimp.NF.consand 87 more75 instances, coercions and auxiliary constants left out.
Tactic trace: 4 steps
Open to load the checked before-and-after goal states.
- lemma
Imo2014P6.Line.val_paramline 172 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses: Imo2014P6.Line,
Real,Eq, Imo2014P6.Line.val, Imo2014P6.Line.param,OfNat.ofNatProof uses: Imo2014P6.Line.base, Imo2014P6.Line.val_base,
id,Mathlib.Tactic.LinearCombination.eq_of_eq,HAdd.hAdd,HMul.hMul,Imo2014P6.Line.a,Prod.fst,Imo2014P6.Line.b,Prod.snd,Imo2014P6.Line.c,Neg.neg,Mathlib.Tactic.LinearCombination.eq_rearrange,Mathlib.Tactic.Ring.of_eq,HSub.hSub,Mathlib.Tactic.Ring.Common.sub_congr,HPow.hPow,Nat,Nat.rawCast,Mathlib.Tactic.Ring.Common.add_congrand 43 more59 instances, coercions and auxiliary constants left out.
Tactic trace: 3 steps
Open to load the checked before-and-after goal states.
- lemma
Imo2014P6.Line.val_param_eqline 177 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses: Imo2014P6.Line,
Real,Eq, Imo2014P6.Line.val, Imo2014P6.Line.param,HAdd.hAdd,HMul.hMul, Imo2014P6.Line.det, Imo2014P6.Line.baseProof uses:
id,Mathlib.Tactic.Ring.of_eq,Imo2014P6.Line.a,Prod.fst,Neg.neg,Imo2014P6.Line.b,Prod.snd,Imo2014P6.Line.c,HSub.hSub,HPow.hPow,Nat,Nat.rawCast,Int.rawCast,inferInstance,Ring,Int.negOfNat,OfNat.ofNat,Mathlib.Tactic.Ring.Common.add_congr,Mathlib.Tactic.Ring.Common.mul_congr,Mathlib.Tactic.Ring.Common.atom_pfand 31 more36 instances, coercions and auxiliary constants left out.
Tactic trace: 2 steps
Open to load the checked before-and-after goal states.
- lemma
Imo2014P6.Line.param_injectiveline 182 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses: Imo2014P6.Line,
Function.Injective,Real,Prod, Imo2014P6.Line.paramProof uses:
Eq,HAdd.hAdd,Prod.fst, Imo2014P6.Line.base,HMul.hMul,Neg.neg,Imo2014P6.Line.b,Prod.snd,Imo2014P6.Line.a,And,Eq.mp,Prod.mk.injEq,Ne,OfNat.ofNat,Or,Imo2014P6.Line.hab,Mathlib.Tactic.Linarith.eq_of_not_lt_of_not_gt,Not.intro,LT.lt,Mathlib.Tactic.Linarith.lt_irrefland 59 more60 instances, coercions and auxiliary constants left out.
Tactic trace: 12 steps
Open to load the checked before-and-after goal states.
- lemma
Imo2014P6.Line.mem_set_of_paramline 192 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses: Imo2014P6.Line,
Real,Membership.mem,Prod,Set, Imo2014P6.Line.set, Imo2014P6.Line.paramProof uses: Imo2014P6.Line.val_param
1 instances, coercions and auxiliary constants left out.
- lemma
Imo2014P6.Line.exists_param_of_mem_setline 194 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses: Imo2014P6.Line,
Prod,Real,Membership.mem,Set, Imo2014P6.Line.set,Exists,Eq, Imo2014P6.Line.paramProof uses:
HAdd.hAdd,HMul.hMul,Imo2014P6.Line.a,Prod.fst,Imo2014P6.Line.b,Prod.snd,Neg.neg,Imo2014P6.Line.c,Mathlib.Tactic.Linarith.eq_of_not_lt_of_not_gt,Not.intro,LT.lt,Mathlib.Tactic.Linarith.lt_irrefl,OfNat.ofNat,Eq.mp,HSub.hSub,congrArg,Mathlib.Tactic.Ring.of_eq,Mathlib.Tactic.Ring.Common.add_congr,HPow.hPow,Natand 103 more93 instances, coercions and auxiliary constants left out.
Tactic trace: 29 steps
Open to load the checked before-and-after goal states.
- lemma
Imo2014P6.GP.det_neline 228 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Finset, Imo2014P6.Line, Imo2014P6.GeneralPosition,Membership.mem,Ne,Real, Imo2014P6.Line.det,OfNat.ofNatProof uses:
And.left, Imo2014P6.Line.val, Imo2014P6.Line.interPt8 instances, coercions and auxiliary constants left out.
- lemma
Imo2014P6.GP.not_concurrentline 231 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Finset, Imo2014P6.Line, Imo2014P6.GeneralPosition,Membership.mem,Ne,Prod,Real,Eq, Imo2014P6.Line.val,OfNat.ofNat,FalseProof uses: Imo2014P6.Line.det, Imo2014P6.GP.det_ne, Imo2014P6.Line.interPt, Imo2014P6.Line.eq_interPt,
And.right,Eq.mp,congrArg8 instances, coercions and auxiliary constants left out.
Tactic trace: 4 steps
Open to load the checked before-and-after goal states.
- lemma
Imo2014P6.GP.eq_of_val_eq_zeroAny line through the intersection of two distinct lines ofLis one of them line 240 sourceSource documentation
Any line through the intersection of two distinct lines of
Lis one of them.standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Finset, Imo2014P6.Line, Imo2014P6.GeneralPosition,Membership.mem,Ne,Prod,Real,Eq, Imo2014P6.Line.val,OfNat.ofNat,OrProof uses:
dite,Or.inl,Not,Or.inr,False.elim, Imo2014P6.GP.not_concurrent,Ne.symm9 instances, coercions and auxiliary constants left out.
Tactic trace: 9 steps
Open to load the checked before-and-after goal states.
lemma eq_of_val_eq_zero {ℓ m n : Line} (hℓ : ℓ ∈ L) (hm : m ∈ L) (hn : n ∈ L) (hd : ℓ ≠ m) {p : ℝ × ℝ} (hp₁ : ℓ.val p = 0) (hp₂ : m.val p = 0) (hp₃ : n.val p = 0) : n = ℓ ∨ n = m := by …Mentions: Imo2014P6.Line
- lemma
Imo2014P6.sgn_ne_zeroline 251 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Bool,Ne,Real, Imo2014P6.sgn,OfNat.ofNatProof uses:
Eq,Bool.false,of_eq_true,Eq.trans,Neg.neg,True,congrFun',congrArg,ite_eq_right_of_eq_false,Bool.true,False,Bool.false_eq_true,eq_false,not_false,eq_true,Not,Mathlib.Meta.NormNum.isInt_eq_false,Int.negOfNat,Int.ofNat,Mathlib.Meta.NormNum.isInt_negand 11 more25 instances, coercions and auxiliary constants left out.
Tactic trace: 2 steps
Open to load the checked before-and-after goal states.
- lemma
Imo2014P6.sgn_casesline 253 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Bool,Or,Eq,Real, Imo2014P6.sgn,OfNat.ofNat,Neg.negProof uses:
Bool.false,of_eq_true,Eq.trans,True,congr,congrArg,congrFun',ite_eq_right_of_eq_false,Bool.true,Bool.false_eq_true,eq_self,or_true,Eq.symm,ite_eq_left_of_eq_true,true_or,Eq.refl9 instances, coercions and auxiliary constants left out.
Tactic trace: 2 steps
Open to load the checked before-and-after goal states.
- lemma
Imo2014P6.sgn_mul_selfline 255 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Bool,Eq,Real,HMul.hMul, Imo2014P6.sgn,OfNat.ofNatProof uses:
Bool.false,of_eq_true,Eq.trans,True,Mathlib.Meta.NormNum.instAddMonoidWithOne,congrFun',congrArg,Neg.neg,congr,ite_eq_right_of_eq_false,Bool.true,False,Bool.false_eq_true,eq_false,not_false,mul_neg,Mathlib.Meta.NormNum.IsNat.to_eq,Mathlib.Meta.NormNum.IsInt.to_isNat,Mathlib.Meta.NormNum.isInt_neg,Int.negOfNatand 13 more37 instances, coercions and auxiliary constants left out.
Tactic trace: 2 steps
Open to load the checked before-and-after goal states.
- lemma
Imo2014P6.Line.continuous_valline 257 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses: Imo2014P6.Line,
Continuous,Prod,Real, Imo2014P6.Line.valProof uses:
id,Continuous.add_const,HAdd.hAdd,HMul.hMul,Imo2014P6.Line.a,Prod.fst,Imo2014P6.Line.b,Prod.snd,Continuous.fun_add,Continuous.comp',continuous_const_mul,continuous_fst,continuous_snd,Imo2014P6.Line.c23 instances, coercions and auxiliary constants left out.
Tactic trace: 2 steps
Open to load the checked before-and-after goal states.
- lemma
Imo2014P6.isOpen_cellline 261 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Finset, Imo2014P6.Line,Bool,IsOpen,Prod,Real, Imo2014P6.CellProof uses:
Eq,Set,Set.iInter,Membership.mem,Set.ofPred,GT.gt,HMul.hMul, Imo2014P6.sgn, Imo2014P6.Line.val,OfNat.ofNat,Set.ext,of_eq_true,Iff,Eq.trans,LT.lt,True,congr,congrArg,congrFun',funextand 13 more33 instances, coercions and auxiliary constants left out.
Tactic trace: 7 steps
Open to load the checked before-and-after goal states.
- lemma
Imo2014P6.isClosed_cellClline 270 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Finset, Imo2014P6.Line,Bool,IsClosed,Prod,Real,Set.ofPred,Membership.mem,GE.ge,HMul.hMul, Imo2014P6.sgn, Imo2014P6.Line.val,OfNat.ofNatProof uses:
Eq,Set,Set.iInter,Set.ext,of_eq_true,Iff,Eq.trans,LE.le,True,congr,congrArg,congrFun',funext,forall_congr,implies_congr,Eq.refl,Set.iInter_congr_Prop,Iff.of_eq,iff_self,Eq.mprand 6 more41 instances, coercions and auxiliary constants left out.
Tactic trace: 7 steps
Open to load the checked before-and-after goal states.
- lemma
Imo2014P6.closure_cellThe closure of a nonempty cell is given by the corresponding weak inequalities line 282 sourceSource documentation
The closure of a nonempty cell is given by the corresponding weak inequalities.
standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Finset, Imo2014P6.Line,Bool,Set.Nonempty,Prod,Real, Imo2014P6.Cell,Eq,Set,closure,Set.ofPred,Membership.mem,GE.ge,HMul.hMul, Imo2014P6.sgn, Imo2014P6.Line.val,OfNat.ofNatProof uses:
Set.Subset.antisymm,closure_minimal,le_of_lt, Imo2014P6.isClosed_cellCl,Eq.mpr,GT.gt,Exists,And,LT.lt,Dist.dist,id,congrArg,propext,Metric.mem_closure_iff,dite,Exists.intro,And.intro,Eq.symm,dist_self,Notand 168 more194 instances, coercions and auxiliary constants left out.
Tactic trace: 48 steps
Open to load the checked before-and-after goal states.
lemma closure_cell {L : Finset Line} {σ : Line → Bool} (hne : (Cell L σ).Nonempty) : closure (Cell L σ) = {p | ∀ ℓ ∈ L, sgn (σ ℓ) * ℓ.val p ≥ 0} := by …Mentions: Imo2014P6.Line, Imo2014P6.Cell, Imo2014P6.sgn
- lemma
Imo2014P6.frontier_cellThe frontier of a cell: its closure minus itself line 321 sourceSource documentation
The frontier of a cell: its closure minus itself.
standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Finset, Imo2014P6.Line,Bool,Eq,Set,Prod,Real,frontier, Imo2014P6.Cell,SDiff.sdiff,closureProof uses:
IsOpen.frontier_eq, Imo2014P6.isOpen_cell9 instances, coercions and auxiliary constants left out.
lemma frontier_cell (L : Finset Line) (σ : Line → Bool) : frontier (Cell L σ) = closure (Cell L σ) \ Cell L σ := …Mentions: Imo2014P6.Line, Imo2014P6.Cell
- lemma
Imo2014P6.mem_frontier_iffA point lies in the frontier of a nonempty cell iff all weak sign conditions hold and it lies on at least one line line 327 sourceSource documentation
A point lies in the frontier of a nonempty cell iff all weak sign conditions hold and it lies on at least one line.
standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Finset, Imo2014P6.Line,Bool,Set.Nonempty,Prod,Real, Imo2014P6.Cell,Iff,Membership.mem,Set,frontier,And,GE.ge,HMul.hMul, Imo2014P6.sgn, Imo2014P6.Line.val,OfNat.ofNat,Exists,EqProof uses:
Eq.mpr,SDiff.sdiff,closure,id,congrArg, Imo2014P6.frontier_cell,Set.ofPred, Imo2014P6.closure_cell,Iff.intro,And.intro,And.left,Not,Decidable.byContradiction,Ne,Exists.intro,LT.lt,Or,GT.gt,lt_or_eq_of_le,False.elimand 9 more45 instances, coercions and auxiliary constants left out.
Tactic trace: 31 steps
Open to load the checked before-and-after goal states.
lemma mem_frontier_iff {L : Finset Line} {σ : Line → Bool} (hne : (Cell L σ).Nonempty) {p : ℝ × ℝ} : p ∈ frontier (Cell L σ) ↔ (∀ ℓ ∈ L, sgn (σ ℓ) * ℓ.val p ≥ 0) ∧ (∃ ℓ ∈ L, ℓ.val p = 0) := by …Mentions: Imo2014P6.Line, Imo2014P6.Cell, Imo2014P6.sgn
- def
Imo2014P6.ValidBlueThe working definition of "no finite region has a completely blue boundary": for every nonempty bounded cell, some line meeting the closure of the cell is not blue line 360 sourceSource documentation
The working definition of "no finite region has a completely blue boundary": for every nonempty bounded cell, some line meeting the closure of the cell is not blue.
standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Finset, Imo2014P6.LineProof uses:
Bool,Set.Nonempty,Prod,Real, Imo2014P6.Cell,Bornology.IsBounded,Exists,And,Membership.mem,Inter.inter,Set,closure, Imo2014P6.Line.set,Not9 instances, coercions and auxiliary constants left out.
def ValidBlue (L B : Finset Line) : Prop := …
Mentions: Imo2014P6.Line
- def
Imo2014P6.Line.crossTThe parameter value where the standard parametrization ofℓcrossesmline 374 sourceSource documentation
The parameter value where the standard parametrization of
ℓcrossesm.standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses: Imo2014P6.Line,
RealProof uses:
HDiv.hDiv,Neg.neg, Imo2014P6.Line.val, Imo2014P6.Line.base, Imo2014P6.Line.det4 instances, coercions and auxiliary constants left out.
noncomputable def crossT (ℓ m : Line) : ℝ := - m.val ℓ.base / ℓ.det m
Mentions: Imo2014P6.Line
- lemma
Imo2014P6.Line.val_param_crossTline 376 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses: Imo2014P6.Line,
Ne,Real, Imo2014P6.Line.det,OfNat.ofNat,Eq, Imo2014P6.Line.val, Imo2014P6.Line.param, Imo2014P6.Line.crossTProof uses:
Eq.mpr,HAdd.hAdd,HMul.hMul, Imo2014P6.Line.base,id,congrArg, Imo2014P6.Line.val_param_eq,HDiv.hDiv,Neg.neg,Imo2014P6.Line.crossT.eq_1,Eq.symm,mul_div_assoc,mul_div_cancel_left₀,neg_add_cancel,Eq.refl32 instances, coercions and auxiliary constants left out.
Tactic trace: 1 steps
Open to load the checked before-and-after goal states.
- lemma
Imo2014P6.Line.crossT_eq_of_val_param_eq_zeroline 380 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses: Imo2014P6.Line,
Ne,Real, Imo2014P6.Line.det,OfNat.ofNat,Eq, Imo2014P6.Line.val, Imo2014P6.Line.param, Imo2014P6.Line.crossTProof uses:
HMul.hMul,Neg.neg, Imo2014P6.Line.base,Mathlib.Tactic.Linarith.eq_of_not_lt_of_not_gt,Not.intro,LT.lt,Mathlib.Tactic.Linarith.lt_irrefl,Eq.mp,HAdd.hAdd,HSub.hSub,congrArg,Mathlib.Tactic.Ring.of_eq,Mathlib.Tactic.Ring.Common.add_congr,HPow.hPow,Nat,Nat.rawCast,Int.rawCast,inferInstance,Ring,Int.negOfNatand 79 more89 instances, coercions and auxiliary constants left out.
Tactic trace: 6 steps
Open to load the checked before-and-after goal states.
- lemma
Imo2014P6.Line.constraint_iffThe sign constraint onmalong the parametrization ofℓ, as a bound ontline 389 sourceSource documentation
The sign constraint on
malong the parametrization ofℓ, as a bound ont.standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses: Imo2014P6.Line,
Bool,Ne,Real, Imo2014P6.Line.det,OfNat.ofNat,Iff,LE.le,HMul.hMul, Imo2014P6.sgn, Imo2014P6.Line.val, Imo2014P6.Line.param,ite,LT.lt, Imo2014P6.Line.crossTProof uses:
Eq.mpr,HAdd.hAdd, Imo2014P6.Line.base,id,Eq,congrArg, Imo2014P6.Line.val_param_eq,HSub.hSub,HDiv.hDiv,Neg.neg,inferInstance,CommGroupWithZero,Mathlib.Tactic.FieldSimp.eq_eq_cancel_eq,Mathlib.Tactic.FieldSimp.NF.eval,List.nil,Prod,Int,Mathlib.Tactic.FieldSimp.eq_mul_of_eq_eq_eq_mul,Mathlib.Tactic.FieldSimp.NF.cons,Prod.mkand 91 more121 instances, coercions and auxiliary constants left out.
Tactic trace: 16 steps
Open to load the checked before-and-after goal states.
lemma constraint_iff {σ : Line → Bool} {ℓ m : Line} (hdet : ℓ.det m ≠ 0) (t : ℝ) : 0 ≤ sgn (σ m) * m.val (ℓ.param t) ↔ (if 0 < sgn (σ m) * ℓ.det m then ℓ.crossT m ≤ t else t ≤ ℓ.crossT m) := by …Mentions: Imo2014P6.Line, Imo2014P6.sgn
- def
Imo2014P6.lowsThe lines whose constraint is a lower bound on the parameter alongℓline 412 sourceSource documentation
The lines whose constraint is a lower bound on the parameter along
ℓ.standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Finset, Imo2014P6.Line,BoolProof uses:
Finset.filter,And,Ne,LT.lt,Real,OfNat.ofNat,HMul.hMul, Imo2014P6.sgn, Imo2014P6.Line.det,Eq9 instances, coercions and auxiliary constants left out.
noncomputable def lows (L : Finset Line) (σ : Line → Bool) (ℓ : Line) : Finset Line := …
Mentions: Imo2014P6.Line
- def
Imo2014P6.uppsThe lines whose constraint is an upper bound on the parameter alongℓline 416 sourceSource documentation
The lines whose constraint is an upper bound on the parameter along
ℓ.standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Finset, Imo2014P6.Line,BoolProof uses:
Finset.filter,And,Ne,LT.lt,Real,HMul.hMul, Imo2014P6.sgn, Imo2014P6.Line.det,OfNat.ofNat,Eq9 instances, coercions and auxiliary constants left out.
noncomputable def upps (L : Finset Line) (σ : Line → Bool) (ℓ : Line) : Finset Line := …
Mentions: Imo2014P6.Line
- lemma
Imo2014P6.mem_lowsline 419 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Finset, Imo2014P6.Line,Bool,Iff,Membership.mem, Imo2014P6.lows,And,Ne,LT.lt,Real,OfNat.ofNat,HMul.hMul, Imo2014P6.sgn, Imo2014P6.Line.detProof uses:
of_eq_true,Not,Eq,Eq.trans,True,congrFun',congrArg,Finset.filter,Finset.filter_congr,Iff.of_eq,Eq.refl,iff_self19 instances, coercions and auxiliary constants left out.
Tactic trace: 1 steps
Open to load the checked before-and-after goal states.
- lemma
Imo2014P6.mem_uppsline 423 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Finset, Imo2014P6.Line,Bool,Iff,Membership.mem, Imo2014P6.upps,And,Ne,LT.lt,Real,HMul.hMul, Imo2014P6.sgn, Imo2014P6.Line.det,OfNat.ofNatProof uses:
of_eq_true,Not,Eq,Eq.trans,True,congrFun',congrArg,Finset.filter,Finset.filter_congr,Iff.of_eq,Eq.refl,iff_self19 instances, coercions and auxiliary constants left out.
Tactic trace: 1 steps
Open to load the checked before-and-after goal states.
- lemma
Imo2014P6.lows_or_uppsline 427 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Finset, Imo2014P6.Line,Bool, Imo2014P6.GeneralPosition,Membership.mem,Ne,Or, Imo2014P6.lows, Imo2014P6.uppsProof uses:
Real, Imo2014P6.Line.det,OfNat.ofNat, Imo2014P6.GP.det_ne,Ne.symm,HMul.hMul, Imo2014P6.sgn,mul_ne_zero, Imo2014P6.sgn_ne_zero,LT.lt,lt_or_gt_of_ne,Or.inr,Iff.mpr,And, Imo2014P6.mem_upps,And.intro,Or.inl, Imo2014P6.mem_lows20 instances, coercions and auxiliary constants left out.
Tactic trace: 7 steps
Open to load the checked before-and-after goal states.
- lemma
Imo2014P6.param_constraint_iffline 436 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Finset, Imo2014P6.Line, Imo2014P6.GeneralPosition,Membership.mem,Bool,Real,Iff,LE.le,OfNat.ofNat,HMul.hMul, Imo2014P6.sgn, Imo2014P6.Line.val, Imo2014P6.Line.param,And, Imo2014P6.lows, Imo2014P6.Line.crossT, Imo2014P6.uppsProof uses:
Iff.intro,And.intro,Ne,LT.lt, Imo2014P6.Line.det,Iff.mp, Imo2014P6.mem_lows,Eq.mp,ite,congrArg,ite_eq_left,propext, Imo2014P6.Line.constraint_iff, Imo2014P6.GP.det_ne,Ne.symm, Imo2014P6.mem_upps,ite_eq_right,Iff.mpr,Not,not_ltand 12 more29 instances, coercions and auxiliary constants left out.
Tactic trace: 31 steps
Open to load the checked before-and-after goal states.
- lemma
Imo2014P6.abs_fst_sub_le_distline 466 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Prod,Real,LE.le,abs,HSub.hSub,Prod.fst,Dist.distProof uses:
Eq.mpr,Norm.norm,id,Eq,congrArg,dist_eq_norm,Trans.trans,of_eq_true,eq_self,norm_fst_le32 instances, coercions and auxiliary constants left out.
Tactic trace: 3 steps
Open to load the checked before-and-after goal states.
- lemma
Imo2014P6.abs_snd_sub_le_distline 471 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Prod,Real,LE.le,abs,HSub.hSub,Prod.snd,Dist.distProof uses:
Eq.mpr,Norm.norm,id,Eq,congrArg,dist_eq_norm,Trans.trans,of_eq_true,eq_self,norm_snd_le32 instances, coercions and auxiliary constants left out.
Tactic trace: 3 steps
Open to load the checked before-and-after goal states.
- structure
Imo2014P6.EdgeCtxA bounded cell of an arrangement in general position, together with a distinguished boundary lineℓline 478 sourceSource documentation
A bounded cell of an arrangement in general position, together with a distinguished boundary line
ℓ.standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Finset, Imo2014P6.Linestructure EdgeCtx (L : Finset Line) where …
Mentions: Imo2014P6.Line
- lemma
Imo2014P6.EdgeCtx.exists_abs_leThe parameters of points of the closure of the cell on the lineℓform a bounded set line 491 sourceSource documentation
The parameters of points of the closure of the cell on the line
ℓform a bounded set.standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Finset, Imo2014P6.Line, Imo2014P6.EdgeCtx,Exists,Real,Membership.mem,LE.le,OfNat.ofNat,HMul.hMul, Imo2014P6.sgn,Imo2014P6.EdgeCtx.σ, Imo2014P6.Line.val, Imo2014P6.Line.param,Imo2014P6.EdgeCtx.ℓ,absProof uses:
Set,Prod,closure, Imo2014P6.Cell,Metric.closedBall, Imo2014P6.Line.base,Bornology.IsBounded.subset_closedBall,Bornology.IsBounded.closure,Imo2014P6.EdgeCtx.hbdd,Eq.mpr,Set.ofPred,GE.ge,id,Eq,congrArg, Imo2014P6.closure_cell,Imo2014P6.EdgeCtx.hne,Ne,Imo2014P6.Line.a,Imo2014P6.Line.band 32 more87 instances, coercions and auxiliary constants left out.
Tactic trace: 26 steps
Open to load the checked before-and-after goal states.
lemma exists_abs_le {L : Finset Line} (E : EdgeCtx L) : ∃ B : ℝ, ∀ t : ℝ, (∀ m ∈ L, 0 ≤ sgn (E.σ m) * m.val (E.ℓ.param t)) → |t| ≤ B := by …Mentions: Imo2014P6.Line, Imo2014P6.EdgeCtx, Imo2014P6.sgn
- lemma
Imo2014P6.EdgeCtx.exists_param_memSome parameter realizes a point of the closure onℓline 522 sourceSource documentation
Some parameter realizes a point of the closure on
ℓ.standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Finset, Imo2014P6.Line, Imo2014P6.EdgeCtx,Exists,Real,Membership.mem,LE.le,OfNat.ofNat,HMul.hMul, Imo2014P6.sgn,Imo2014P6.EdgeCtx.σ, Imo2014P6.Line.val, Imo2014P6.Line.param,Imo2014P6.EdgeCtx.ℓProof uses:
Prod,Set,Inter.inter,closure, Imo2014P6.Cell, Imo2014P6.Line.set,Set.Nonempty,Imo2014P6.EdgeCtx.hedge,Eq, Imo2014P6.Line.exists_param_of_mem_set,Exists.intro,Eq.mp,Set.ofPred,GE.ge,congrArg, Imo2014P6.closure_cell,Imo2014P6.EdgeCtx.hne23 instances, coercions and auxiliary constants left out.
Tactic trace: 5 steps
Open to load the checked before-and-after goal states.
lemma exists_param_mem {L : Finset Line} (E : EdgeCtx L) : ∃ t : ℝ, (∀ m ∈ L, 0 ≤ sgn (E.σ m) * m.val (E.ℓ.param t)) := by …Mentions: Imo2014P6.Line, Imo2014P6.EdgeCtx, Imo2014P6.sgn
- lemma
Imo2014P6.EdgeCtx.upps_nonemptyline 530 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Finset, Imo2014P6.Line, Imo2014P6.EdgeCtx,Finset.Nonempty, Imo2014P6.upps,Imo2014P6.EdgeCtx.σ,Imo2014P6.EdgeCtx.ℓProof uses:
Real,Membership.mem,LE.le,OfNat.ofNat,HMul.hMul, Imo2014P6.sgn, Imo2014P6.Line.val, Imo2014P6.Line.param,abs,Exists, Imo2014P6.EdgeCtx.exists_abs_le, Imo2014P6.EdgeCtx.exists_param_mem,le_trans,abs_nonneg,Decidable.byContradiction,Not,HAdd.hAdd,Finset.sum, Imo2014P6.lows, Imo2014P6.Line.crossT and 71 more68 instances, coercions and auxiliary constants left out.
Tactic trace: 23 steps
Open to load the checked before-and-after goal states.
- lemma
Imo2014P6.EdgeCtx.lows_nonemptyline 557 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Finset, Imo2014P6.Line, Imo2014P6.EdgeCtx,Finset.Nonempty, Imo2014P6.lows,Imo2014P6.EdgeCtx.σ,Imo2014P6.EdgeCtx.ℓProof uses:
Real,Membership.mem,LE.le,OfNat.ofNat,HMul.hMul, Imo2014P6.sgn, Imo2014P6.Line.val, Imo2014P6.Line.param,abs,Exists, Imo2014P6.EdgeCtx.exists_abs_le, Imo2014P6.EdgeCtx.exists_param_mem,le_trans,abs_nonneg,Decidable.byContradiction,Not,HSub.hSub,Neg.neg,HAdd.hAdd,Finset.sumand 74 more71 instances, coercions and auxiliary constants left out.
Tactic trace: 23 steps
Open to load the checked before-and-after goal states.
- def
Imo2014P6.EdgeCtx.TminThe lower endpoint of the edge, in parameter form line 585 sourceSource documentation
The lower endpoint of the edge, in parameter form.
standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Finset, Imo2014P6.Line, Imo2014P6.EdgeCtx,RealProof uses:
Finset.max',Finset.image, Imo2014P6.Line.crossT,Imo2014P6.EdgeCtx.ℓ, Imo2014P6.lows,Imo2014P6.EdgeCtx.σ3 instances, coercions and auxiliary constants left out.
noncomputable def Tmin {L : Finset Line} (E : EdgeCtx L) : ℝ := …Mentions: Imo2014P6.Line, Imo2014P6.EdgeCtx
- def
Imo2014P6.EdgeCtx.TmaxThe upper endpoint of the edge, in parameter form line 589 sourceSource documentation
The upper endpoint of the edge, in parameter form.
standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Finset, Imo2014P6.Line, Imo2014P6.EdgeCtx,RealProof uses:
Finset.min',Finset.image, Imo2014P6.Line.crossT,Imo2014P6.EdgeCtx.ℓ, Imo2014P6.upps,Imo2014P6.EdgeCtx.σ3 instances, coercions and auxiliary constants left out.
noncomputable def Tmax {L : Finset Line} (E : EdgeCtx L) : ℝ := …Mentions: Imo2014P6.Line, Imo2014P6.EdgeCtx
- lemma
Imo2014P6.EdgeCtx.E_eq_Iccline 592 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Finset, Imo2014P6.Line, Imo2014P6.EdgeCtx,Eq,Set,Real,Set.ofPred,Membership.mem,LE.le,OfNat.ofNat,HMul.hMul, Imo2014P6.sgn,Imo2014P6.EdgeCtx.σ, Imo2014P6.Line.val, Imo2014P6.Line.param,Imo2014P6.EdgeCtx.ℓ,Set.Icc, Imo2014P6.EdgeCtx.Tmin, Imo2014P6.EdgeCtx.TmaxProof uses:
Set.ext,id,Iff,Eq.mpr,And, Imo2014P6.lows, Imo2014P6.Line.crossT, Imo2014P6.upps,congrArg,propext, Imo2014P6.param_constraint_iff,Imo2014P6.EdgeCtx.hGP,Imo2014P6.EdgeCtx.hℓ,Set.mem_Icc,Iff.intro,And.intro,Finset.max'_le,Finset.image,Exists,Eq.mpand 7 more33 instances, coercions and auxiliary constants left out.
Tactic trace: 31 steps
Open to load the checked before-and-after goal states.
- lemma
Imo2014P6.EdgeCtx.Tmin_le_Tmaxline 622 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Finset, Imo2014P6.Line, Imo2014P6.EdgeCtx,LE.le,Real, Imo2014P6.EdgeCtx.Tmin, Imo2014P6.EdgeCtx.TmaxProof uses:
Membership.mem,OfNat.ofNat,HMul.hMul, Imo2014P6.sgn,Imo2014P6.EdgeCtx.σ, Imo2014P6.Line.val, Imo2014P6.Line.param,Imo2014P6.EdgeCtx.ℓ,Exists, Imo2014P6.EdgeCtx.exists_param_mem,Set,Set.Icc,Eq.mpr,Set.ofPred,id,Eq,congrArg,Eq.symm, Imo2014P6.EdgeCtx.E_eq_Icc,LE.le.transand 2 more12 instances, coercions and auxiliary constants left out.
Tactic trace: 5 steps
Open to load the checked before-and-after goal states.
- lemma
Imo2014P6.EdgeCtx.exists_low_crossline 629 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Finset, Imo2014P6.Line, Imo2014P6.EdgeCtx,Exists,And,Membership.mem, Imo2014P6.lows,Imo2014P6.EdgeCtx.σ,Imo2014P6.EdgeCtx.ℓ,Eq,Real, Imo2014P6.Line.crossT, Imo2014P6.EdgeCtx.TminProof uses:
Finset.image,Finset.max',Iff.mpr,Finset.Nonempty,Finset.image_nonempty, Imo2014P6.EdgeCtx.lows_nonempty,Finset.max'_mem,Eq.mp,Exists.intro,And.intro9 instances, coercions and auxiliary constants left out.
Tactic trace: 4 steps
Open to load the checked before-and-after goal states.
- lemma
Imo2014P6.EdgeCtx.exists_upp_crossline 637 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Finset, Imo2014P6.Line, Imo2014P6.EdgeCtx,Exists,And,Membership.mem, Imo2014P6.upps,Imo2014P6.EdgeCtx.σ,Imo2014P6.EdgeCtx.ℓ,Eq,Real, Imo2014P6.Line.crossT, Imo2014P6.EdgeCtx.TmaxProof uses:
Finset.image,Finset.min',Iff.mpr,Finset.Nonempty,Finset.image_nonempty, Imo2014P6.EdgeCtx.upps_nonempty,Finset.min'_mem,Eq.mp,Exists.intro,And.intro9 instances, coercions and auxiliary constants left out.
Tactic trace: 4 steps
Open to load the checked before-and-after goal states.
- lemma
Imo2014P6.EdgeCtx.Tmin_lt_TmaxThe two endpoints are distinct: they would otherwise give three concurrent lines line 646 sourceSource documentation
The two endpoints are distinct: they would otherwise give three concurrent lines.
standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Finset, Imo2014P6.Line, Imo2014P6.EdgeCtx,LT.lt,Real, Imo2014P6.EdgeCtx.Tmin, Imo2014P6.EdgeCtx.TmaxProof uses:
And,Membership.mem, Imo2014P6.lows,Imo2014P6.EdgeCtx.σ,Imo2014P6.EdgeCtx.ℓ,Eq, Imo2014P6.Line.crossT,Exists, Imo2014P6.EdgeCtx.exists_low_cross, Imo2014P6.upps, Imo2014P6.EdgeCtx.exists_upp_cross,Ne,OfNat.ofNat,HMul.hMul, Imo2014P6.sgn, Imo2014P6.Line.det,Iff.mp, Imo2014P6.mem_lows, Imo2014P6.mem_upps,False.elimand 69 more53 instances, coercions and auxiliary constants left out.
Tactic trace: 22 steps
Open to load the checked before-and-after goal states.
lemma Tmin_lt_Tmax {L : Finset Line} (E : EdgeCtx L) : E.Tmin < E.Tmax := by …Mentions: Imo2014P6.Line, Imo2014P6.EdgeCtx
- lemma
Imo2014P6.EdgeCtx.val_ne_zero_of_mem_IooThe pullback of the edge along the parametrization contains no crossing in its interior line 671 sourceSource documentation
The pullback of the edge along the parametrization contains no crossing in its interior.
standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Finset, Imo2014P6.Line, Imo2014P6.EdgeCtx,Membership.mem,Ne,Imo2014P6.EdgeCtx.ℓ,Real,Set,Set.Ioo, Imo2014P6.EdgeCtx.Tmin, Imo2014P6.EdgeCtx.Tmax, Imo2014P6.Line.val, Imo2014P6.Line.param,OfNat.ofNatProof uses:
Eq, Imo2014P6.lows,Imo2014P6.EdgeCtx.σ, Imo2014P6.upps,Or,False, Imo2014P6.lows_or_upps,Imo2014P6.EdgeCtx.hGP,Imo2014P6.EdgeCtx.hℓ, Imo2014P6.Line.crossT, Imo2014P6.Line.crossT_eq_of_val_param_eq_zero, Imo2014P6.GP.det_ne,Ne.symm,LE.le,Finset.le_max',Finset.image,Finset.mem_image_of_mem,False.elim,Mathlib.Tactic.Linarith.lt_irrefl,Eq.mpand 57 more60 instances, coercions and auxiliary constants left out.
Tactic trace: 10 steps
Open to load the checked before-and-after goal states.
lemma val_ne_zero_of_mem_Ioo {L : Finset Line} (E : EdgeCtx L) {m : Line} (hm : m ∈ L) (hmℓ : m ≠ E.ℓ) {t : ℝ} (ht : t ∈ Set.Ioo E.Tmin E.Tmax) : m.val (E.ℓ.param t) ≠ 0 := by …Mentions: Imo2014P6.Line, Imo2014P6.EdgeCtx
- lemma
Imo2014P6.EdgeCtx.param_mem_closure_interThe parametrized points of the edge segment lie in the closure of the cell and on the line line 689 sourceSource documentation
The parametrized points of the edge segment lie in the closure of the cell and on the line.
standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Finset, Imo2014P6.Line, Imo2014P6.EdgeCtx,Real,Membership.mem,Set,Set.Icc, Imo2014P6.EdgeCtx.Tmin, Imo2014P6.EdgeCtx.Tmax,Prod,Inter.inter,closure, Imo2014P6.Cell,Imo2014P6.EdgeCtx.σ, Imo2014P6.Line.set,Imo2014P6.EdgeCtx.ℓ, Imo2014P6.Line.paramProof uses:
And.intro,Eq.mpr,Set.ofPred,GE.ge,HMul.hMul, Imo2014P6.sgn, Imo2014P6.Line.val,OfNat.ofNat,id,Eq,congrArg, Imo2014P6.closure_cell,Imo2014P6.EdgeCtx.hne,LE.le, Imo2014P6.EdgeCtx.E_eq_Icc, Imo2014P6.Line.val_param20 instances, coercions and auxiliary constants left out.
Tactic trace: 9 steps
Open to load the checked before-and-after goal states.
lemma param_mem_closure_inter {L : Finset Line} (E : EdgeCtx L) {t : ℝ} (ht : t ∈ Set.Icc E.Tmin E.Tmax) : E.ℓ.param t ∈ closure (Cell L E.σ) ∩ E.ℓ.set := by …Mentions: Imo2014P6.Line, Imo2014P6.EdgeCtx, Imo2014P6.Cell
- lemma
Imo2014P6.EdgeCtx.exists_line_at_TmaxAt the upper endpoint, some other line of the arrangement passes: the line realizing the upper bound line 702 sourceSource documentation
At the upper endpoint, some other line of the arrangement passes: the line realizing the upper bound.
standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Finset, Imo2014P6.Line, Imo2014P6.EdgeCtx,Exists,And,Membership.mem,Ne,Imo2014P6.EdgeCtx.ℓ,Eq,Real, Imo2014P6.Line.val, Imo2014P6.Line.param, Imo2014P6.EdgeCtx.Tmax,OfNat.ofNatProof uses: Imo2014P6.upps,
Imo2014P6.EdgeCtx.σ, Imo2014P6.Line.crossT, Imo2014P6.EdgeCtx.exists_upp_cross,LT.lt,HMul.hMul, Imo2014P6.sgn, Imo2014P6.Line.det,Iff.mp, Imo2014P6.mem_upps,Exists.intro,And.intro,And.left,And.right,Eq.mpr,id,congrArg,Eq.symm, Imo2014P6.Line.val_param_crossT, Imo2014P6.GP.det_ne and 3 more13 instances, coercions and auxiliary constants left out.
Tactic trace: 5 steps
Open to load the checked before-and-after goal states.
lemma exists_line_at_Tmax {L : Finset Line} (E : EdgeCtx L) : ∃ m ∈ L, m ≠ E.ℓ ∧ m.val (E.ℓ.param E.Tmax) = 0 := by …Mentions: Imo2014P6.Line, Imo2014P6.EdgeCtx
- lemma
Imo2014P6.EdgeCtx.exists_line_at_TminAt the lower endpoint, some other line of the arrangement passes line 711 sourceSource documentation
At the lower endpoint, some other line of the arrangement passes.
standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Finset, Imo2014P6.Line, Imo2014P6.EdgeCtx,Exists,And,Membership.mem,Ne,Imo2014P6.EdgeCtx.ℓ,Eq,Real, Imo2014P6.Line.val, Imo2014P6.Line.param, Imo2014P6.EdgeCtx.Tmin,OfNat.ofNatProof uses: Imo2014P6.lows,
Imo2014P6.EdgeCtx.σ, Imo2014P6.Line.crossT, Imo2014P6.EdgeCtx.exists_low_cross,LT.lt,HMul.hMul, Imo2014P6.sgn, Imo2014P6.Line.det,Iff.mp, Imo2014P6.mem_lows,Exists.intro,And.intro,And.left,And.right,Eq.mpr,id,congrArg,Eq.symm, Imo2014P6.Line.val_param_crossT, Imo2014P6.GP.det_ne and 3 more13 instances, coercions and auxiliary constants left out.
Tactic trace: 5 steps
Open to load the checked before-and-after goal states.
lemma exists_line_at_Tmin {L : Finset Line} (E : EdgeCtx L) : ∃ m ∈ L, m ≠ E.ℓ ∧ m.val (E.ℓ.param E.Tmin) = 0 := by …Mentions: Imo2014P6.Line, Imo2014P6.EdgeCtx
- lemma
Imo2014P6.EdgeCtx.eq_of_val_at_paramAt most one other line passes through an endpoint (general position) line 720 sourceSource documentation
At most one other line passes through an endpoint (general position).
standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Finset, Imo2014P6.Line, Imo2014P6.EdgeCtx,Membership.mem,Ne,Imo2014P6.EdgeCtx.ℓ,Real,Eq, Imo2014P6.Line.val, Imo2014P6.Line.param,OfNat.ofNatProof uses:
dite,Not,False.elim, Imo2014P6.GP.not_concurrent,Imo2014P6.EdgeCtx.hGP,Imo2014P6.EdgeCtx.hℓ,Ne.symm, Imo2014P6.Line.val_param9 instances, coercions and auxiliary constants left out.
Tactic trace: 6 steps
Open to load the checked before-and-after goal states.
lemma eq_of_val_at_param {L : Finset Line} (E : EdgeCtx L) {m n : Line} (hm : m ∈ L) (hn : n ∈ L) (hmℓ : m ≠ E.ℓ) (hnℓ : n ≠ E.ℓ) {t : ℝ} (hmt : m.val (E.ℓ.param t) = 0) (hnt : n.val (E.ℓ.param t) = 0) : m = n := by …Mentions: Imo2014P6.Line, Imo2014P6.EdgeCtx
- lemma
Imo2014P6.Line.det_commline 731 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses: Imo2014P6.Line,
Eq,Real, Imo2014P6.Line.det,Neg.negProof uses:
id,Mathlib.Tactic.Ring.of_eq,HSub.hSub,HMul.hMul,Imo2014P6.Line.a,Imo2014P6.Line.b,HAdd.hAdd,HPow.hPow,Nat,Nat.rawCast,Int.rawCast,inferInstance,Ring,Int.negOfNat,OfNat.ofNat,Mathlib.Tactic.Ring.Common.sub_congr,Mathlib.Tactic.Ring.Common.mul_congr,Mathlib.Tactic.Ring.Common.atom_pf,rfl,Eq.mprand 29 more31 instances, coercions and auxiliary constants left out.
Tactic trace: 2 steps
Open to load the checked before-and-after goal states.
- structure
Imo2014P6.WitnessA witness region for a red lineℓ: a bounded cell of the arrangement whose boundary lines are all blue, exceptℓ, which does occur on the boundary line 745 sourceSource documentation
A witness region for a red line
ℓ: a bounded cell of the arrangement whose boundary lines are all blue, exceptℓ, which does occur on the boundary.standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Finset, Imo2014P6.Linestructure Witness (L B : Finset Line) (ℓ : Line) where …
Mentions: Imo2014P6.Line
- def
Imo2014P6.Witness.ectxThe edge context of the red lineℓline 757 sourceSource documentation
The edge context of the red line
ℓ.standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Finset, Imo2014P6.Line, Imo2014P6.Witness, Imo2014P6.GeneralPosition,Membership.mem, Imo2014P6.EdgeCtxProof uses:
Imo2014P6.EdgeCtx.mk,Imo2014P6.Witness.σ,Imo2014P6.Witness.hne,Imo2014P6.Witness.hbdd,Imo2014P6.Witness.hℓ4 instances, coercions and auxiliary constants left out.
noncomputable def ectx (hGP : GeneralPosition L) (hℓL : ℓ ∈ L) : EdgeCtx L := …
Mentions: Imo2014P6.GeneralPosition, Imo2014P6.EdgeCtx
- def
Imo2014P6.Witness.rTThe parameter of the red pointr: the endpoint of the red edge at which the clockwise traversal of the boundary leaves the red line line 762 sourceSource documentation
The parameter of the red point
r: the endpoint of the red edge at which the clockwise traversal of the boundary leaves the red line.standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Finset, Imo2014P6.Line, Imo2014P6.Witness, Imo2014P6.GeneralPosition,Membership.mem,RealProof uses:
ite,Eq,Bool,Imo2014P6.Witness.σ,Bool.true, Imo2014P6.EdgeCtx.Tmax, Imo2014P6.Witness.ectx, Imo2014P6.EdgeCtx.Tmin5 instances, coercions and auxiliary constants left out.
noncomputable def rT (hGP : GeneralPosition L) (hℓL : ℓ ∈ L) : ℝ := …
Mentions: Imo2014P6.GeneralPosition
- def
Imo2014P6.Witness.rThe red point associated toℓline 766 sourceSource documentation
The red point associated to
ℓ.standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Finset, Imo2014P6.Line, Imo2014P6.Witness, Imo2014P6.GeneralPosition,Membership.mem,Prod,RealProof uses: Imo2014P6.Line.param, Imo2014P6.Witness.rT
4 instances, coercions and auxiliary constants left out.
noncomputable def r (hGP : GeneralPosition L) (hℓL : ℓ ∈ L) : ℝ × ℝ := …
Mentions: Imo2014P6.GeneralPosition
- lemma
Imo2014P6.Witness.rT_mem_Iccline 769 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Finset, Imo2014P6.Line, Imo2014P6.Witness, Imo2014P6.GeneralPosition,Membership.mem,Real,Set,Set.Icc, Imo2014P6.EdgeCtx.Tmin, Imo2014P6.Witness.ectx, Imo2014P6.EdgeCtx.Tmax, Imo2014P6.Witness.rTProof uses:
Eq.mpr,ite,Eq,Bool,Imo2014P6.Witness.σ,Bool.true,id,congrArg,Imo2014P6.Witness.rT.eq_1,Decidable,Not,ite_eq_right,Iff.mpr,LE.le,Set.left_mem_Icc, Imo2014P6.EdgeCtx.Tmin_le_Tmax,ite_eq_left,Set.right_mem_Icc11 instances, coercions and auxiliary constants left out.
Tactic trace: 6 steps
Open to load the checked before-and-after goal states.
- lemma
Imo2014P6.Witness.r_mem_closureline 776 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Finset, Imo2014P6.Line, Imo2014P6.Witness, Imo2014P6.GeneralPosition,Membership.mem,Prod,Real,Set,Inter.inter,closure, Imo2014P6.Cell,Imo2014P6.Witness.σ, Imo2014P6.Line.set, Imo2014P6.Witness.rProof uses: Imo2014P6.EdgeCtx.param_mem_closure_inter, Imo2014P6.Witness.ectx, Imo2014P6.Witness.rT, Imo2014P6.Witness.rT_mem_Icc
10 instances, coercions and auxiliary constants left out.
- lemma
Imo2014P6.Witness.rT_neline 780 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Finset, Imo2014P6.Line, Imo2014P6.Witness, Imo2014P6.GeneralPosition,Membership.mem,And,Ne,Real, Imo2014P6.Witness.rT, Imo2014P6.EdgeCtx.Tmin, Imo2014P6.Witness.ectx, Imo2014P6.EdgeCtx.Tmax,FalseProof uses:
Eq,Bool,Imo2014P6.Witness.σ,Bool.true,Decidable,Not,And.left,Eq.mp,ite,congr,congrArg,congrFun',ite_eq_right,Imo2014P6.Witness.rT.eq_1,rfl,And.right,ite_eq_left6 instances, coercions and auxiliary constants left out.
Tactic trace: 7 steps
Open to load the checked before-and-after goal states.
- lemma
Imo2014P6.Witness.exists_g1The other line throughrexists line 790 sourceSource documentation
The other line through
rexists.standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Finset, Imo2014P6.Line, Imo2014P6.Witness, Imo2014P6.GeneralPosition,Membership.mem,Exists,And,Ne,Eq,Real, Imo2014P6.Line.val, Imo2014P6.Witness.r,OfNat.ofNatProof uses:
Eq.mpr, Imo2014P6.Line.param, Imo2014P6.Witness.rT,id,congrArg,Prod,Imo2014P6.Witness.r.eq_1,ite,Bool,Imo2014P6.Witness.σ,Bool.true, Imo2014P6.EdgeCtx.Tmax, Imo2014P6.Witness.ectx, Imo2014P6.EdgeCtx.Tmin,Imo2014P6.Witness.rT.eq_1,Decidable,Not,funext,congrFun',ite_eq_rightand 3 more10 instances, coercions and auxiliary constants left out.
Tactic trace: 6 steps
Open to load the checked before-and-after goal states.
lemma exists_g1 (hGP : GeneralPosition L) (hℓL : ℓ ∈ L) : ∃ g ∈ L, g ≠ ℓ ∧ g.val (W.r hGP hℓL) = 0 := by …Mentions: Imo2014P6.GeneralPosition
- lemma
Imo2014P6.Witness.g1_uniqueThe other line throughris unique line 798 sourceSource documentation
The other line through
ris unique.standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Finset, Imo2014P6.Line, Imo2014P6.Witness, Imo2014P6.GeneralPosition,Membership.mem,Ne,Eq,Real, Imo2014P6.Line.val, Imo2014P6.Witness.r,OfNat.ofNatProof uses: Imo2014P6.EdgeCtx.eq_of_val_at_param, Imo2014P6.Witness.ectx, Imo2014P6.Witness.rT
8 instances, coercions and auxiliary constants left out.
lemma g1_unique (hGP : GeneralPosition L) (hℓL : ℓ ∈ L) {g g' : Line} (hg : g ∈ L) (hg' : g' ∈ L) (hgℓ : g ≠ ℓ) (hg'ℓ : g' ≠ ℓ) (hgr : g.val (W.r hGP hℓL) = 0) (hg'r : g'.val (W.r hGP hℓL) = 0) : g = g' := …Mentions: Imo2014P6.GeneralPosition, Imo2014P6.Line
- def
Imo2014P6.Witness.g1The other line throughr(a blue line) line 804 sourceSource documentation
The other line through
r(a blue line).standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Finset, Imo2014P6.Line, Imo2014P6.Witness, Imo2014P6.GeneralPosition,Membership.memProof uses:
Classical.choose,And,Ne,Eq,Real, Imo2014P6.Line.val, Imo2014P6.Witness.r,OfNat.ofNat, Imo2014P6.Witness.exists_g16 instances, coercions and auxiliary constants left out.
noncomputable def g1 (hGP : GeneralPosition L) (hℓL : ℓ ∈ L) : Line := …
Mentions: Imo2014P6.GeneralPosition, Imo2014P6.Line
- lemma
Imo2014P6.Witness.g1_memline 807 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Finset, Imo2014P6.Line, Imo2014P6.Witness, Imo2014P6.GeneralPosition,Membership.mem, Imo2014P6.Witness.g1Proof uses:
And.left,Classical.choose,And,Ne,Eq,Real, Imo2014P6.Line.val, Imo2014P6.Witness.r,OfNat.ofNat, Imo2014P6.Witness.exists_g1,Classical.choose_spec6 instances, coercions and auxiliary constants left out.
- lemma
Imo2014P6.Witness.g1_neline 810 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Finset, Imo2014P6.Line, Imo2014P6.Witness, Imo2014P6.GeneralPosition,Membership.mem,Ne, Imo2014P6.Witness.g1Proof uses:
And.left,Classical.choose,And,Eq,Real, Imo2014P6.Line.val, Imo2014P6.Witness.r,OfNat.ofNat, Imo2014P6.Witness.exists_g1,And.right,Classical.choose_spec6 instances, coercions and auxiliary constants left out.
- lemma
Imo2014P6.Witness.g1_val_rline 813 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Finset, Imo2014P6.Line, Imo2014P6.Witness, Imo2014P6.GeneralPosition,Membership.mem,Eq,Real, Imo2014P6.Line.val, Imo2014P6.Witness.g1, Imo2014P6.Witness.r,OfNat.ofNatProof uses:
And.right,Ne,Classical.choose,And, Imo2014P6.Witness.exists_g1,Classical.choose_spec8 instances, coercions and auxiliary constants left out.
- lemma
Imo2014P6.Witness.r_mem_g1line 817 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Finset, Imo2014P6.Line, Imo2014P6.Witness, Imo2014P6.GeneralPosition,Membership.mem,Prod,Real,Set,Inter.inter,closure, Imo2014P6.Cell,Imo2014P6.Witness.σ, Imo2014P6.Line.set, Imo2014P6.Witness.g1, Imo2014P6.Witness.rProof uses:
And.intro,And.left, Imo2014P6.Witness.r_mem_closure, Imo2014P6.Witness.g1_val_r15 instances, coercions and auxiliary constants left out.
- def
Imo2014P6.Witness.g1ctxThe edge context of the blue lineg₁line 822 sourceSource documentation
The edge context of the blue line
g₁.standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Finset, Imo2014P6.Line, Imo2014P6.Witness, Imo2014P6.GeneralPosition,Membership.mem, Imo2014P6.EdgeCtxProof uses:
Imo2014P6.EdgeCtx.mk,Imo2014P6.Witness.σ, Imo2014P6.Witness.g1,Imo2014P6.Witness.hne,Imo2014P6.Witness.hbdd, Imo2014P6.Witness.g1_mem5 instances, coercions and auxiliary constants left out.
noncomputable def g1ctx (hGP : GeneralPosition L) (hℓL : ℓ ∈ L) : EdgeCtx L := …
Mentions: Imo2014P6.GeneralPosition, Imo2014P6.EdgeCtx
- lemma
Imo2014P6.Witness.ectx_σline 826 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Finset, Imo2014P6.Line, Imo2014P6.Witness, Imo2014P6.GeneralPosition,Membership.mem,Eq,Bool,Imo2014P6.EdgeCtx.σ, Imo2014P6.Witness.ectx,Imo2014P6.Witness.σProof uses:
rfl4 instances, coercions and auxiliary constants left out.
- lemma
Imo2014P6.Witness.ectx_ℓline 829 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Finset, Imo2014P6.Line, Imo2014P6.Witness, Imo2014P6.GeneralPosition,Membership.mem,Eq,Imo2014P6.EdgeCtx.ℓ, Imo2014P6.Witness.ectxProof uses:
rfl4 instances, coercions and auxiliary constants left out.
- lemma
Imo2014P6.Witness.g1ctx_σline 832 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Finset, Imo2014P6.Line, Imo2014P6.Witness, Imo2014P6.GeneralPosition,Membership.mem,Eq,Bool,Imo2014P6.EdgeCtx.σ, Imo2014P6.Witness.g1ctx,Imo2014P6.Witness.σProof uses:
rfl4 instances, coercions and auxiliary constants left out.
- lemma
Imo2014P6.Witness.g1ctx_ℓline 835 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Finset, Imo2014P6.Line, Imo2014P6.Witness, Imo2014P6.GeneralPosition,Membership.mem,Eq,Imo2014P6.EdgeCtx.ℓ, Imo2014P6.Witness.g1ctx, Imo2014P6.Witness.g1Proof uses:
rfl4 instances, coercions and auxiliary constants left out.
- lemma
Imo2014P6.Witness.g1_blueline 838 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Finset, Imo2014P6.Line, Imo2014P6.Witness, Imo2014P6.GeneralPosition,Membership.mem, Imo2014P6.Witness.g1Proof uses:
Insert.insert,Imo2014P6.Witness.hbd, Imo2014P6.Witness.g1_mem,Exists.intro,Prod,Real,Set,Inter.inter,closure, Imo2014P6.Cell,Imo2014P6.Witness.σ, Imo2014P6.Line.set, Imo2014P6.Witness.r, Imo2014P6.Witness.r_mem_g1,Eq,Or,Iff.mp,Finset.mem_insert,absurd, Imo2014P6.Witness.g1_ne13 instances, coercions and auxiliary constants left out.
Tactic trace: 6 steps
Open to load the checked before-and-after goal states.
- lemma
Imo2014P6.Witness.exists_s_rThe parameter ofrin the parametrization ofg₁line 845 sourceSource documentation
The parameter of
rin the parametrization ofg₁.standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Finset, Imo2014P6.Line, Imo2014P6.Witness, Imo2014P6.GeneralPosition,Membership.mem,Exists,Real,And,Eq,Prod, Imo2014P6.Line.param, Imo2014P6.Witness.g1, Imo2014P6.Witness.r,Set,Set.Icc, Imo2014P6.EdgeCtx.Tmin, Imo2014P6.Witness.g1ctx, Imo2014P6.EdgeCtx.TmaxProof uses: Imo2014P6.Line.exists_param_of_mem_set, Imo2014P6.Witness.g1_val_r,
Exists.intro,And.intro,closure, Imo2014P6.Cell,Imo2014P6.Witness.σ,And.left, Imo2014P6.Line.set, Imo2014P6.Witness.r_mem_closure,Eq.mpr,Set.ofPred,LE.le,OfNat.ofNat,HMul.hMul, Imo2014P6.sgn,Imo2014P6.EdgeCtx.σ, Imo2014P6.Line.val,Imo2014P6.EdgeCtx.ℓ,idand 7 more18 instances, coercions and auxiliary constants left out.
Tactic trace: 7 steps
Open to load the checked before-and-after goal states.
lemma exists_s_r (hGP : GeneralPosition L) (hℓL : ℓ ∈ L) : ∃ s : ℝ, (W.g1 hGP hℓL).param s = W.r hGP hℓL ∧ s ∈ Set.Icc (W.g1ctx hGP hℓL).Tmin (W.g1ctx hGP hℓL).Tmax := by …Mentions: Imo2014P6.GeneralPosition
- lemma
Imo2014P6.Witness.r_eq_g1_paramThe consistency lemma:ris the clockwise-first endpoint of theg₁-edge, i.e.bandrare two clockwise-consecutive vertices of the region line 858 sourceSource documentation
The consistency lemma:
ris the clockwise-first endpoint of theg₁-edge, i.e.bandrare two clockwise-consecutive vertices of the region.standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Finset, Imo2014P6.Line, Imo2014P6.Witness, Imo2014P6.GeneralPosition,Membership.mem,Eq,Prod,Real, Imo2014P6.Witness.r, Imo2014P6.Line.param, Imo2014P6.Witness.g1,ite,Bool,Imo2014P6.Witness.σ,Bool.true, Imo2014P6.EdgeCtx.Tmin, Imo2014P6.Witness.g1ctx, Imo2014P6.EdgeCtx.TmaxProof uses:
And,Set,Set.Icc,Exists, Imo2014P6.Witness.exists_s_r,Ne, Imo2014P6.Line.det,OfNat.ofNat, Imo2014P6.GP.det_ne, Imo2014P6.Witness.g1_mem,Ne.symm, Imo2014P6.Witness.g1_ne, Imo2014P6.Line.val,HMul.hMul,HSub.hSub, Imo2014P6.Witness.rT,HAdd.hAdd, Imo2014P6.Line.base, Imo2014P6.Line.val_param_eq, Imo2014P6.Witness.g1_val_r and 123 more132 instances, coercions and auxiliary constants left out.
Tactic trace: 132 steps
Open to load the checked before-and-after goal states.
lemma r_eq_g1_param (hGP : GeneralPosition L) (hℓL : ℓ ∈ L) : W.r hGP hℓL = (W.g1 hGP hℓL).param (if W.σ (W.g1 hGP hℓL) then (W.g1ctx hGP hℓL).Tmin else (W.g1ctx hGP hℓL).Tmax) := by …Mentions: Imo2014P6.GeneralPosition
- def
Imo2014P6.Witness.bTThe parameter of the blue pointbin the parametrization ofg₁: the other endpoint of theg₁-edge line 997 sourceSource documentation
The parameter of the blue point
bin the parametrization ofg₁: the other endpoint of theg₁-edge.standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Finset, Imo2014P6.Line, Imo2014P6.Witness, Imo2014P6.GeneralPosition,Membership.mem,RealProof uses:
ite,Eq,Bool,Imo2014P6.Witness.σ, Imo2014P6.Witness.g1,Bool.true, Imo2014P6.EdgeCtx.Tmax, Imo2014P6.Witness.g1ctx, Imo2014P6.EdgeCtx.Tmin5 instances, coercions and auxiliary constants left out.
noncomputable def bT (hGP : GeneralPosition L) (hℓL : ℓ ∈ L) : ℝ := …
Mentions: Imo2014P6.GeneralPosition
- def
Imo2014P6.Witness.bThe blue point associated toℓ: the next vertex of the region afterrin clockwise order line 1002 sourceSource documentation
The blue point associated to
ℓ: the next vertex of the region afterrin clockwise order.standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Finset, Imo2014P6.Line, Imo2014P6.Witness, Imo2014P6.GeneralPosition,Membership.mem,Prod,RealProof uses: Imo2014P6.Line.param, Imo2014P6.Witness.g1, Imo2014P6.Witness.bT
4 instances, coercions and auxiliary constants left out.
noncomputable def b (hGP : GeneralPosition L) (hℓL : ℓ ∈ L) : ℝ × ℝ := …
Mentions: Imo2014P6.GeneralPosition
- lemma
Imo2014P6.Witness.bT_mem_Iccline 1005 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Finset, Imo2014P6.Line, Imo2014P6.Witness, Imo2014P6.GeneralPosition,Membership.mem,Real,Set,Set.Icc, Imo2014P6.EdgeCtx.Tmin, Imo2014P6.Witness.g1ctx, Imo2014P6.EdgeCtx.Tmax, Imo2014P6.Witness.bTProof uses:
Eq.mpr,ite,Eq,Bool,Imo2014P6.Witness.σ, Imo2014P6.Witness.g1,Bool.true,id,congrArg,Imo2014P6.Witness.bT.eq_1,Decidable,Not,ite_eq_right,Iff.mpr,LE.le,Set.left_mem_Icc, Imo2014P6.EdgeCtx.Tmin_le_Tmax,ite_eq_left,Set.right_mem_Icc11 instances, coercions and auxiliary constants left out.
Tactic trace: 6 steps
Open to load the checked before-and-after goal states.
- lemma
Imo2014P6.Witness.b_mem_closureline 1012 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Finset, Imo2014P6.Line, Imo2014P6.Witness, Imo2014P6.GeneralPosition,Membership.mem,Prod,Real,Set,Inter.inter,closure, Imo2014P6.Cell,Imo2014P6.Witness.σ, Imo2014P6.Line.set, Imo2014P6.Witness.g1, Imo2014P6.Witness.bProof uses: Imo2014P6.EdgeCtx.param_mem_closure_inter, Imo2014P6.Witness.g1ctx, Imo2014P6.Witness.bT, Imo2014P6.Witness.bT_mem_Icc
10 instances, coercions and auxiliary constants left out.
- lemma
Imo2014P6.Witness.b_ne_rline 1016 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Finset, Imo2014P6.Line, Imo2014P6.Witness, Imo2014P6.GeneralPosition,Membership.mem,Ne,Prod,Real, Imo2014P6.Witness.b, Imo2014P6.Witness.rProof uses:
Eq.mpr, Imo2014P6.Line.param, Imo2014P6.Witness.g1, Imo2014P6.Witness.bT,id,Eq,congrArg,Imo2014P6.Witness.b.eq_1,ite,Bool,Imo2014P6.Witness.σ,Bool.true, Imo2014P6.EdgeCtx.Tmin, Imo2014P6.Witness.g1ctx, Imo2014P6.EdgeCtx.Tmax, Imo2014P6.Witness.r_eq_g1_param,LT.lt, Imo2014P6.EdgeCtx.Tmin_lt_Tmax,False,Bool.falseand 59 more54 instances, coercions and auxiliary constants left out.
Tactic trace: 18 steps
Open to load the checked before-and-after goal states.
- lemma
Imo2014P6.Witness.exists_g2The other line throughbexists line 1035 sourceSource documentation
The other line through
bexists.standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Finset, Imo2014P6.Line, Imo2014P6.Witness, Imo2014P6.GeneralPosition,Membership.mem,Exists,And,Ne, Imo2014P6.Witness.g1,Eq,Real, Imo2014P6.Line.val, Imo2014P6.Witness.b,OfNat.ofNatProof uses:
Eq.mpr, Imo2014P6.Line.param, Imo2014P6.Witness.bT,id,congrArg,Prod,Imo2014P6.Witness.b.eq_1,ite,Bool,Imo2014P6.Witness.σ,Bool.true, Imo2014P6.EdgeCtx.Tmax, Imo2014P6.Witness.g1ctx, Imo2014P6.EdgeCtx.Tmin,Imo2014P6.Witness.bT.eq_1,Decidable,Not,funext,congrFun',ite_eq_rightand 3 more10 instances, coercions and auxiliary constants left out.
Tactic trace: 6 steps
Open to load the checked before-and-after goal states.
lemma exists_g2 (hGP : GeneralPosition L) (hℓL : ℓ ∈ L) : ∃ g ∈ L, g ≠ W.g1 hGP hℓL ∧ g.val (W.b hGP hℓL) = 0 := by …Mentions: Imo2014P6.GeneralPosition
- def
Imo2014P6.Witness.g2The other line throughb(another blue line) line 1043 sourceSource documentation
The other line through
b(another blue line).standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Finset, Imo2014P6.Line, Imo2014P6.Witness, Imo2014P6.GeneralPosition,Membership.memProof uses:
Classical.choose,And,Ne, Imo2014P6.Witness.g1,Eq,Real, Imo2014P6.Line.val, Imo2014P6.Witness.b,OfNat.ofNat, Imo2014P6.Witness.exists_g26 instances, coercions and auxiliary constants left out.
noncomputable def g2 (hGP : GeneralPosition L) (hℓL : ℓ ∈ L) : Line := …
Mentions: Imo2014P6.GeneralPosition, Imo2014P6.Line
- lemma
Imo2014P6.Witness.g2_memline 1046 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Finset, Imo2014P6.Line, Imo2014P6.Witness, Imo2014P6.GeneralPosition,Membership.mem, Imo2014P6.Witness.g2Proof uses:
And.left,Classical.choose,And,Ne, Imo2014P6.Witness.g1,Eq,Real, Imo2014P6.Line.val, Imo2014P6.Witness.b,OfNat.ofNat, Imo2014P6.Witness.exists_g2,Classical.choose_spec6 instances, coercions and auxiliary constants left out.
- lemma
Imo2014P6.Witness.g2_ne_g1line 1049 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Finset, Imo2014P6.Line, Imo2014P6.Witness, Imo2014P6.GeneralPosition,Membership.mem,Ne, Imo2014P6.Witness.g2, Imo2014P6.Witness.g1Proof uses:
And.left,Classical.choose,And,Eq,Real, Imo2014P6.Line.val, Imo2014P6.Witness.b,OfNat.ofNat, Imo2014P6.Witness.exists_g2,And.right,Classical.choose_spec6 instances, coercions and auxiliary constants left out.
- lemma
Imo2014P6.Witness.g2_val_bline 1052 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Finset, Imo2014P6.Line, Imo2014P6.Witness, Imo2014P6.GeneralPosition,Membership.mem,Eq,Real, Imo2014P6.Line.val, Imo2014P6.Witness.g2, Imo2014P6.Witness.b,OfNat.ofNatProof uses:
And.right,Ne,Classical.choose,And, Imo2014P6.Witness.g1, Imo2014P6.Witness.exists_g2,Classical.choose_spec8 instances, coercions and auxiliary constants left out.
- lemma
Imo2014P6.Witness.g2_ne_redline 1056 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Finset, Imo2014P6.Line, Imo2014P6.Witness, Imo2014P6.GeneralPosition,Membership.mem,Ne, Imo2014P6.Witness.g2Proof uses:
Eq,Real, Imo2014P6.Line.det, Imo2014P6.Witness.g1,OfNat.ofNat, Imo2014P6.GP.det_ne, Imo2014P6.Witness.g1_mem,Ne.symm, Imo2014P6.Witness.g1_ne, Imo2014P6.Line.val, Imo2014P6.Witness.b, Imo2014P6.Witness.g2_val_b,Eq.mp,congrArg,And.right,Prod,Set,closure, Imo2014P6.Cell,Imo2014P6.Witness.σand 11 more11 instances, coercions and auxiliary constants left out.
Tactic trace: 12 steps
Open to load the checked before-and-after goal states.
- lemma
Imo2014P6.Witness.b_mem_g2line 1071 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Finset, Imo2014P6.Line, Imo2014P6.Witness, Imo2014P6.GeneralPosition,Membership.mem,Prod,Real,Set,Inter.inter,closure, Imo2014P6.Cell,Imo2014P6.Witness.σ, Imo2014P6.Line.set, Imo2014P6.Witness.g2, Imo2014P6.Witness.bProof uses:
And.intro,And.left, Imo2014P6.Witness.g1, Imo2014P6.Witness.b_mem_closure, Imo2014P6.Witness.g2_val_b15 instances, coercions and auxiliary constants left out.
- lemma
Imo2014P6.Witness.g2_blueline 1075 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Finset, Imo2014P6.Line, Imo2014P6.Witness, Imo2014P6.GeneralPosition,Membership.mem, Imo2014P6.Witness.g2Proof uses:
Insert.insert,Imo2014P6.Witness.hbd, Imo2014P6.Witness.g2_mem,Exists.intro,Prod,Real,Set,Inter.inter,closure, Imo2014P6.Cell,Imo2014P6.Witness.σ, Imo2014P6.Line.set, Imo2014P6.Witness.b, Imo2014P6.Witness.b_mem_g2,Eq,Or,Iff.mp,Finset.mem_insert,absurd, Imo2014P6.Witness.g2_ne_red13 instances, coercions and auxiliary constants left out.
Tactic trace: 6 steps
Open to load the checked before-and-after goal states.
- lemma
Imo2014P6.Witness.eq_of_val_b_eq_zeroThe two blue lines throughbare exactlyg₁andg₂line 1082 sourceSource documentation
The two blue lines through
bare exactlyg₁andg₂.standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Finset, Imo2014P6.Line, Imo2014P6.Witness, Imo2014P6.GeneralPosition,Membership.mem,Eq,Real, Imo2014P6.Line.val, Imo2014P6.Witness.b,OfNat.ofNat,Or, Imo2014P6.Witness.g1, Imo2014P6.Witness.g2Proof uses: Imo2014P6.GP.eq_of_val_eq_zero, Imo2014P6.Witness.g1_mem, Imo2014P6.Witness.g2_mem,
Ne.symm, Imo2014P6.Witness.g2_ne_g1,And.right,Prod,Set,closure, Imo2014P6.Cell,Imo2014P6.Witness.σ, Imo2014P6.Line.set, Imo2014P6.Witness.b_mem_closure, Imo2014P6.Witness.g2_val_b13 instances, coercions and auxiliary constants left out.
lemma eq_of_val_b_eq_zero (hGP : GeneralPosition L) (hℓL : ℓ ∈ L) {m : Line} (hm : m ∈ L) (hmv : m.val (W.b hGP hℓL) = 0) : m = W.g1 hGP hℓL ∨ m = W.g2 hGP hℓL := …Mentions: Imo2014P6.GeneralPosition, Imo2014P6.Line
- def
Imo2014P6.Witness.g2ctxThe edge context of the blue lineg₂line 1089 sourceSource documentation
The edge context of the blue line
g₂.standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Finset, Imo2014P6.Line, Imo2014P6.Witness, Imo2014P6.GeneralPosition,Membership.mem, Imo2014P6.EdgeCtxProof uses:
Imo2014P6.EdgeCtx.mk,Imo2014P6.Witness.σ, Imo2014P6.Witness.g2,Imo2014P6.Witness.hne,Imo2014P6.Witness.hbdd, Imo2014P6.Witness.g2_mem5 instances, coercions and auxiliary constants left out.
noncomputable def g2ctx (hGP : GeneralPosition L) (hℓL : ℓ ∈ L) : EdgeCtx L := …
Mentions: Imo2014P6.GeneralPosition, Imo2014P6.EdgeCtx
- lemma
Imo2014P6.Witness.g2ctx_σline 1093 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Finset, Imo2014P6.Line, Imo2014P6.Witness, Imo2014P6.GeneralPosition,Membership.mem,Eq,Bool,Imo2014P6.EdgeCtx.σ, Imo2014P6.Witness.g2ctx,Imo2014P6.Witness.σProof uses:
rfl4 instances, coercions and auxiliary constants left out.
- lemma
Imo2014P6.Witness.g2ctx_ℓline 1096 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Finset, Imo2014P6.Line, Imo2014P6.Witness, Imo2014P6.GeneralPosition,Membership.mem,Eq,Imo2014P6.EdgeCtx.ℓ, Imo2014P6.Witness.g2ctx, Imo2014P6.Witness.g2Proof uses:
rfl4 instances, coercions and auxiliary constants left out.
- def
Imo2014P6.Witness.s_rThe parameter ofrin the parametrization ofg₁line 1100 sourceSource documentation
The parameter of
rin the parametrization ofg₁.standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Finset, Imo2014P6.Line, Imo2014P6.Witness, Imo2014P6.GeneralPosition,Membership.mem,RealProof uses:
ite,Eq,Bool,Imo2014P6.Witness.σ, Imo2014P6.Witness.g1,Bool.true, Imo2014P6.EdgeCtx.Tmin, Imo2014P6.Witness.g1ctx, Imo2014P6.EdgeCtx.Tmax5 instances, coercions and auxiliary constants left out.
noncomputable def s_r (hGP : GeneralPosition L) (hℓL : ℓ ∈ L) : ℝ := …
Mentions: Imo2014P6.GeneralPosition
- def
Imo2014P6.Witness.s_bThe parameter ofbin the parametrization ofg₁line 1104 sourceSource documentation
The parameter of
bin the parametrization ofg₁.standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Finset, Imo2014P6.Line, Imo2014P6.Witness, Imo2014P6.GeneralPosition,Membership.mem,RealProof uses:
ite,Eq,Bool,Imo2014P6.Witness.σ, Imo2014P6.Witness.g1,Bool.true, Imo2014P6.EdgeCtx.Tmax, Imo2014P6.Witness.g1ctx, Imo2014P6.EdgeCtx.Tmin5 instances, coercions and auxiliary constants left out.
noncomputable def s_b (hGP : GeneralPosition L) (hℓL : ℓ ∈ L) : ℝ := …
Mentions: Imo2014P6.GeneralPosition
- lemma
Imo2014P6.Witness.r_eq_param_s_rline 1107 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Finset, Imo2014P6.Line, Imo2014P6.Witness, Imo2014P6.GeneralPosition,Membership.mem,Eq,Prod,Real, Imo2014P6.Witness.r, Imo2014P6.Line.param, Imo2014P6.Witness.g1, Imo2014P6.Witness.s_rProof uses: Imo2014P6.Witness.r_eq_g1_param
4 instances, coercions and auxiliary constants left out.
- lemma
Imo2014P6.Witness.b_eq_param_s_bline 1111 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Finset, Imo2014P6.Line, Imo2014P6.Witness, Imo2014P6.GeneralPosition,Membership.mem,Eq,Prod,Real, Imo2014P6.Witness.b, Imo2014P6.Line.param, Imo2014P6.Witness.g1, Imo2014P6.Witness.s_bProof uses:
rfl4 instances, coercions and auxiliary constants left out.
- lemma
Imo2014P6.Witness.s_bTline 1114 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Finset, Imo2014P6.Line, Imo2014P6.Witness, Imo2014P6.GeneralPosition,Membership.mem,Eq,Real, Imo2014P6.Witness.s_b, Imo2014P6.Witness.bTProof uses:
rfl4 instances, coercions and auxiliary constants left out.
- lemma
Imo2014P6.Witness.s_r_ne_s_bline 1117 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Finset, Imo2014P6.Line, Imo2014P6.Witness, Imo2014P6.GeneralPosition,Membership.mem,Ne,Real, Imo2014P6.Witness.s_r, Imo2014P6.Witness.s_bProof uses:
LT.lt, Imo2014P6.EdgeCtx.Tmin, Imo2014P6.Witness.g1ctx, Imo2014P6.EdgeCtx.Tmax, Imo2014P6.EdgeCtx.Tmin_lt_Tmax,Bool,Eq,Imo2014P6.Witness.σ, Imo2014P6.Witness.g1,Bool.false,Eq.mpr,ite,Bool.true,id,congrArg,Imo2014P6.Witness.s_r.eq_1,Imo2014P6.Witness.s_b.eq_1,Not,congr,ite_eq_right_of_eq_falseand 55 more54 instances, coercions and auxiliary constants left out.
Tactic trace: 5 steps
Open to load the checked before-and-after goal states.
- lemma
Imo2014P6.Witness.mem_Ioo_of_betweenA parameter strictly betweens_rands_blies in the interior of theg₁-edge line 1124 sourceSource documentation
A parameter strictly between
s_rands_blies in the interior of theg₁-edge.standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Finset, Imo2014P6.Line, Imo2014P6.Witness, Imo2014P6.GeneralPosition,Membership.mem,Real,LT.lt,HMul.hMul,HSub.hSub, Imo2014P6.Witness.s_r, Imo2014P6.Witness.s_b,OfNat.ofNat,Set,Set.Ioo, Imo2014P6.EdgeCtx.Tmin, Imo2014P6.Witness.g1ctx, Imo2014P6.EdgeCtx.TmaxProof uses:
And,Or,Iff.mp,mul_neg_iff,HAdd.hAdd,Bool,Eq,Imo2014P6.Witness.σ, Imo2014P6.Witness.g1,Bool.false,Eq.mpr,id,And.intro,lt_of_not_ge,LE.le,Mathlib.Tactic.Linarith.lt_irrefl,Eq.mp,congrArg,Mathlib.Tactic.Ring.of_eq,Mathlib.Tactic.Ring.Common.add_congrand 50 more101 instances, coercions and auxiliary constants left out.
Tactic trace: 10 steps
Open to load the checked before-and-after goal states.
lemma mem_Ioo_of_between (hGP : GeneralPosition L) (hℓL : ℓ ∈ L) {t : ℝ} (ht : (t - W.s_r hGP hℓL) * (t - W.s_b hGP hℓL) < 0) : t ∈ Set.Ioo (W.g1ctx hGP hℓL).Tmin (W.g1ctx hGP hℓL).Tmax := by …Mentions: Imo2014P6.GeneralPosition
- lemma
Imo2014P6.Witness.g1_edge_uncutTheg₁-edge contains no crossing of another line in its interior line 1136 sourceSource documentation
The
g₁-edge contains no crossing of another line in its interior.standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Finset, Imo2014P6.Line, Imo2014P6.Witness, Imo2014P6.GeneralPosition,Membership.mem,Ne, Imo2014P6.Witness.g1,Real,Set,Set.Ioo, Imo2014P6.EdgeCtx.Tmin, Imo2014P6.Witness.g1ctx, Imo2014P6.EdgeCtx.Tmax, Imo2014P6.Line.val, Imo2014P6.Line.param,OfNat.ofNatProof uses: Imo2014P6.EdgeCtx.val_ne_zero_of_mem_Ioo
10 instances, coercions and auxiliary constants left out.
lemma g1_edge_uncut (hGP : GeneralPosition L) (hℓL : ℓ ∈ L) {m : Line} (hm : m ∈ L) (hm1 : m ≠ W.g1 hGP hℓL) {t : ℝ} (ht : t ∈ Set.Ioo (W.g1ctx hGP hℓL).Tmin (W.g1ctx hGP hℓL).Tmax) : m.val ((W.g1 hGP hℓL).param t) ≠ 0 := …Mentions: Imo2014P6.GeneralPosition, Imo2014P6.Line
- lemma
Imo2014P6.Witness.g2_edge_uncutTheg₂-edge contains no crossing of another line in its interior line 1143 sourceSource documentation
The
g₂-edge contains no crossing of another line in its interior.standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Finset, Imo2014P6.Line, Imo2014P6.Witness, Imo2014P6.GeneralPosition,Membership.mem,Ne, Imo2014P6.Witness.g2,Real,Set,Set.Ioo, Imo2014P6.EdgeCtx.Tmin, Imo2014P6.Witness.g2ctx, Imo2014P6.EdgeCtx.Tmax, Imo2014P6.Line.val, Imo2014P6.Line.param,OfNat.ofNatProof uses: Imo2014P6.EdgeCtx.val_ne_zero_of_mem_Ioo
10 instances, coercions and auxiliary constants left out.
lemma g2_edge_uncut (hGP : GeneralPosition L) (hℓL : ℓ ∈ L) {m : Line} (hm : m ∈ L) (hm2 : m ≠ W.g2 hGP hℓL) {t : ℝ} (ht : t ∈ Set.Ioo (W.g2ctx hGP hℓL).Tmin (W.g2ctx hGP hℓL).Tmax) : m.val ((W.g2 hGP hℓL).param t) ≠ 0 := …Mentions: Imo2014P6.GeneralPosition, Imo2014P6.Line
- lemma
Imo2014P6.opp_sidesDocumented declaration: opp_sides line 1154 sourceSource documentation
Two distinct red points associated to the same blue point along the same blue line must lie on opposite sides of the blue point: on the same side, the nearer region's side would be crossed by the farther region's red line.
standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Finset, Imo2014P6.Line, Imo2014P6.GeneralPosition, Imo2014P6.Witness,Membership.mem,Not,Eq, Imo2014P6.Witness.g1,Prod,Real, Imo2014P6.Witness.b,Ne, Imo2014P6.Witness.r,LT.lt,HMul.hMul,HSub.hSub, Imo2014P6.Witness.s_r, Imo2014P6.Witness.s_b,OfNat.ofNatProof uses: Imo2014P6.Line.param,
Eq.mpr,id,congrArg,Eq.refl, Imo2014P6.Witness.b_eq_param_s_b,Trans.trans,Eq.symm, Imo2014P6.Line.param_injective, Imo2014P6.Witness.s_r_ne_s_b, Imo2014P6.Witness.r_eq_param_s_r,Decidable.byContradiction,mul_ne_zero,Iff.mpr,sub_ne_zero,lt_of_le_of_ne',le_of_not_gt,Eq.mp, Imo2014P6.Witness.g1_blue, Imo2014P6.Line.val and 74 more102 instances, coercions and auxiliary constants left out.
Tactic trace: 66 steps
Open to load the checked before-and-after goal states.
lemma opp_sides {L B : Finset Line} (hGP : GeneralPosition L) {ℓi ℓj : Line} (Wi : Witness L B ℓi) (Wj : Witness L B ℓj) (hiL : ℓi ∈ L) (hjL : ℓj ∈ L) (hiB : ℓi ∉ B) (hjB : ℓj ∉ B) (hgq : Wi.g1 hGP hiL = Wj.g1 hGP hjL) (hq : Wi.b hGP hiL = Wj.b hGP hjL) (hrr : Wi.r hGP hiL ≠ Wj.r hGP hjL) : (Wi.s_r hGP hiL - Wi.s_b hGP hiL) * (Wj.s_r hGP hjL - Wi.s_b hGP hiL) < 0 := by …Mentions: Imo2014P6.Line, Imo2014P6.GeneralPosition, Imo2014P6.Witness
- lemma
Imo2014P6.turn_at_blue_ptThe key turning argument: the region of the third red line must turn atqtowards one of the two red points, forcing three concurrent lines line 1234 sourceSource documentation
The key turning argument: the region of the third red line must turn at
qtowards one of the two red points, forcing three concurrent lines.standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Finset, Imo2014P6.Line, Imo2014P6.GeneralPosition, Imo2014P6.Witness,Membership.mem,Not,Ne,Eq, Imo2014P6.Witness.g1,Prod,Real, Imo2014P6.Witness.b,LT.lt,HMul.hMul,HSub.hSub, Imo2014P6.Witness.s_r, Imo2014P6.Witness.s_b,OfNat.ofNat,FalseProof uses:
rfl, Imo2014P6.Witness.g1_mem, Imo2014P6.Witness.g1_blue, Imo2014P6.Line.val,And.right,Set,closure, Imo2014P6.Cell,Imo2014P6.Witness.σ, Imo2014P6.Line.set, Imo2014P6.Witness.b_mem_closure,Eq.rec,Eq.mp,congrArg, Imo2014P6.Witness.g2, Imo2014P6.Witness.g2_val_b,Eq.mpr,id,Or, Imo2014P6.Witness.eq_of_val_b_eq_zero and 150 more122 instances, coercions and auxiliary constants left out.
Tactic trace: 243 steps (first 200 of 243)
Open to load the checked before-and-after goal states.
lemma turn_at_blue_pt {L B : Finset Line} (hGP : GeneralPosition L) {ℓₖ ℓi ℓj : Line} (W : Witness L B ℓₖ) (Wi : Witness L B ℓi) (Wj : Witness L B ℓj) (hkL : ℓₖ ∈ L) (hiL : ℓi ∈ L) (hjL : ℓj ∈ L) (hkB : ℓₖ ∉ B) (hiB : ℓi ∉ B) (hjB : ℓj ∉ B) (hki : ℓₖ ≠ ℓi) (hkj : ℓₖ ≠ ℓj) (hgq : Wi.g1 hGP hiL = Wj.g1 hGP hjL) (hq : Wi.b hGP hiL = Wj.b hGP hjL) (hqW : W.b hGP hkL = Wi.b hGP hiL) (hgW : Wi.g1 hGP hiL ≠ W.g1 hGP hkL) (hopp : (Wi.s_r hGP hiL - Wi.s_b hGP hiL) * (Wj.s_r hGP hjL - Wi.s_b hGP hiL) < 0) : False := by …Mentions: Imo2014P6.Line, Imo2014P6.GeneralPosition, Imo2014P6.Witness
- lemma
Imo2014P6.Line.eq_of_two_memTwo distinct points determine a line (in general position) line 1472 sourceSource documentation
Two distinct points determine a line (in general position).
standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Finset, Imo2014P6.Line, Imo2014P6.GeneralPosition,Membership.mem,Prod,Real,Ne,Eq, Imo2014P6.Line.val,OfNat.ofNatProof uses:
Decidable.byContradiction,Not, Imo2014P6.Line.det, Imo2014P6.GP.det_ne, Imo2014P6.Line.interPt, Imo2014P6.Line.eq_interPt,Eq.trans,Eq.symm9 instances, coercions and auxiliary constants left out.
Tactic trace: 5 steps
Open to load the checked before-and-after goal states.
lemma Line.eq_of_two_mem {L : Finset Line} (hGP : GeneralPosition L) {g g' : Line} (hg : g ∈ L) (hg' : g' ∈ L) {p q : ℝ × ℝ} (hpq : p ≠ q) (hgp : g.val p = 0) (hgq : g.val q = 0) (hg'p : g'.val p = 0) (hg'q : g'.val q = 0) : g = g' := by …Mentions: Imo2014P6.Line, Imo2014P6.GeneralPosition
- lemma
Imo2014P6.Line.interPt_commline 1482 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses: Imo2014P6.Line,
Ne,Real, Imo2014P6.Line.det,OfNat.ofNat,Eq,Prod, Imo2014P6.Line.interPtProof uses:
Eq.mpr,Neg.neg,id,congrArg, Imo2014P6.Line.det_comm,Iff.mpr,neg_ne_zero,Eq.symm, Imo2014P6.Line.eq_interPt, Imo2014P6.Line.val_interPt_right, Imo2014P6.Line.val_interPt_left12 instances, coercions and auxiliary constants left out.
Tactic trace: 4 steps
Open to load the checked before-and-after goal states.
- def
Imo2014P6.assocBThe association map from red lines to blue points, for a choice of witnesses line 1489 sourceSource documentation
The association map from red lines to blue points, for a choice of witnesses.
standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Finset, Imo2014P6.Line,Membership.mem,SDiff.sdiff, Imo2014P6.Witness, Imo2014P6.GeneralPosition,Prod,RealProof uses:
dite, Imo2014P6.Witness.b,Not,Prod.mk,OfNat.ofNat12 instances, coercions and auxiliary constants left out.
noncomputable def assocB (L B : Finset Line) (W : ∀ m ∈ L \ B, Witness L B m) (hGP : GeneralPosition L) (ℓ : Line) : ℝ × ℝ := …Mentions: Imo2014P6.Line, Imo2014P6.Witness, Imo2014P6.GeneralPosition
- lemma
Imo2014P6.Witness.s_b_eq_s_bOn the same blue line through the same blue point, the parameter ofbis the same for two witnesses line 1497 sourceSource documentation
On the same blue line through the same blue point, the parameter of
bis the same for two witnesses.standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Finset, Imo2014P6.Line, Imo2014P6.GeneralPosition, Imo2014P6.Witness,Membership.mem,Eq, Imo2014P6.Witness.g1,Prod,Real, Imo2014P6.Witness.b, Imo2014P6.Witness.s_bProof uses: Imo2014P6.Line.param,
Eq.mpr,id,congrArg,Eq.refl, Imo2014P6.Witness.b_eq_param_s_b,Trans.trans,Eq.symm, Imo2014P6.Line.param_injective5 instances, coercions and auxiliary constants left out.
Tactic trace: 7 steps
Open to load the checked before-and-after goal states.
lemma s_b_eq_s_b {L B : Finset Line} (hGP : GeneralPosition L) {ℓi ℓj : Line} (Wi : Witness L B ℓi) (Wj : Witness L B ℓj) (hiL : ℓi ∈ L) (hjL : ℓj ∈ L) (hgq : Wi.g1 hGP hiL = Wj.g1 hGP hjL) (hq : Wi.b hGP hiL = Wj.b hGP hjL) : Wi.s_b hGP hiL = Wj.s_b hGP hjL := by …Mentions: Imo2014P6.Line, Imo2014P6.GeneralPosition, Imo2014P6.Witness
- lemma
Imo2014P6.fiber_card_le_twoThe key counting lemma: at most two red lines are associated to the same blue point line 1519 sourceSource documentation
The key counting lemma: at most two red lines are associated to the same blue point.
standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Finset, Imo2014P6.Line,Membership.mem,SDiff.sdiff, Imo2014P6.Witness, Imo2014P6.GeneralPosition,Prod,Real,LE.le,Nat,Finset.card,Finset.filter,Eq, Imo2014P6.assocB,OfNat.ofNatProof uses:
Decidable.byContradiction,Not,LT.lt,Nat.lt_of_not_le,rfl,Finset.Nonempty,False,Iff.mp,Finset.card_pos,Eq.mp,congrArg,Finset.erase,Eq.mpr,HSub.hSub,id,Finset.card_erase_of_mem,And,Exists,Ne,Finset.one_lt_cardand 116 more108 instances, coercions and auxiliary constants left out.
Tactic trace: 118 steps
Open to load the checked before-and-after goal states.
lemma fiber_card_le_two (L B : Finset Line) (W : ∀ m ∈ L \ B, Witness L B m) (hGP : GeneralPosition L) (q : ℝ × ℝ) : ((L \ B).filter fun ℓ => assocB L B W hGP ℓ = q).card ≤ 2 := by …Mentions: Imo2014P6.Line, Imo2014P6.Witness, Imo2014P6.GeneralPosition, Imo2014P6.assocB
- lemma
Imo2014P6.exists_boundary_lineEvery bounded nonempty cell has a boundary line: follow a ray from an interior point; since the cell is bounded, some constraint must stop the ray line 1668 sourceSource documentation
Every bounded nonempty cell has a boundary line: follow a ray from an interior point; since the cell is bounded, some constraint must stop the ray.
standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Finset, Imo2014P6.Line,Bool,Set.Nonempty,Prod,Real, Imo2014P6.Cell,Bornology.IsBounded,Exists,And,Membership.mem,Inter.inter,Set,closure, Imo2014P6.Line.setProof uses:
LE.le,Metric.closedBall,Bornology.IsBounded.subset_closedBall,Bornology.IsBounded.closure,Eq, Imo2014P6.Line.val,HAdd.hAdd,HSMul.hSMul,Prod.mk,OfNat.ofNat,HMul.hMul,Imo2014P6.Line.a,Eq.mpr,Prod.fst,Imo2014P6.Line.b,Prod.snd,Imo2014P6.Line.c,id,congrFun',congrArgand 168 more225 instances, coercions and auxiliary constants left out.
Tactic trace: 87 steps
Open to load the checked before-and-after goal states.
lemma exists_boundary_line {L : Finset Line} {σ : Line → Bool} (hne : (Cell L σ).Nonempty) (hbdd : Bornology.IsBounded (Cell L σ)) : ∃ m ∈ L, (closure (Cell L σ) ∩ m.set).Nonempty := by …Mentions: Imo2014P6.Line, Imo2014P6.Cell
- lemma
Imo2014P6.validBlue_emptyThe empty blue set is valid line 1750 sourceSource documentation
The empty blue set is valid.
standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Finset, Imo2014P6.Line, Imo2014P6.ValidBlue,EmptyCollection.emptyCollectionProof uses:
Bool,Set.Nonempty,Prod,Real, Imo2014P6.Cell,Bornology.IsBounded,And,Membership.mem,Inter.inter,Set,closure, Imo2014P6.Line.set,Exists,Not, Imo2014P6.exists_boundary_line,Exists.intro,And.intro,of_eq_true,Eq.trans,Falseand 3 more14 instances, coercions and auxiliary constants left out.
Tactic trace: 4 steps
Open to load the checked before-and-after goal states.
lemma validBlue_empty (L : Finset Line) : ValidBlue L ∅ := by …
Mentions: Imo2014P6.Line, Imo2014P6.ValidBlue
- lemma
Imo2014P6.exists_maximal_validA maximal valid blue set exists line 1756 sourceSource documentation
A maximal valid blue set exists.
standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Finset, Imo2014P6.Line,Exists,And,LE.le, Imo2014P6.ValidBlue,Membership.mem,Not,Insert.insertProof uses:
Finset.Nonempty,Finset.filter,Classical.propDecidable,Finset.powerset,Exists.intro,EmptyCollection.emptyCollection,Iff.mpr,Finset.mem_filter,And.intro,Finset.empty_mem_powerset, Imo2014P6.validBlue_empty,Nat,Finset.image,Finset.card,Finset.image_nonempty,Finset.max',Eq,rfl,Finset.max'_mem,Eq.mpand 16 more24 instances, coercions and auxiliary constants left out.
Tactic trace: 16 steps
Open to load the checked before-and-after goal states.
lemma exists_maximal_valid (L : Finset Line) : ∃ B ⊆ L, ValidBlue L B ∧ ∀ m ∈ L, m ∉ B → ¬ ValidBlue L (insert m B) := by …Mentions: Imo2014P6.Line, Imo2014P6.ValidBlue
- lemma
Imo2014P6.exists_witnessEvery red line has a witness region line 1778 sourceSource documentation
Every red line has a witness region.
standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Finset, Imo2014P6.Line, Imo2014P6.ValidBlue,Membership.mem,Not,Insert.insert,Nonempty, Imo2014P6.WitnessProof uses:
Exists,Bool,And,Set.Nonempty,Prod,Real, Imo2014P6.Cell,Bornology.IsBounded,Inter.inter,Set,closure, Imo2014P6.Line.set,Classical.byContradiction,Exists.intro,And.intro,Decidable.byContradiction,Eq,Or,Iff.mp,Finset.mem_insertand 7 more19 instances, coercions and auxiliary constants left out.
Tactic trace: 22 steps
Open to load the checked before-and-after goal states.
lemma exists_witness (L : Finset Line) {B : Finset Line} (hBV : ValidBlue L B) (hmax : ∀ m ∈ L, m ∉ B → ¬ ValidBlue L (insert m B)) {ℓ : Line} (hℓL : ℓ ∈ L) (hℓB : ℓ ∉ B) : Nonempty (Witness L B ℓ) := by …Mentions: Imo2014P6.Line, Imo2014P6.ValidBlue, Imo2014P6.Witness
- def
Imo2014P6.redWitnessThe choice of a witness region for every red line line 1804 sourceSource documentation
The choice of a witness region for every red line.
standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Finset, Imo2014P6.Line, Imo2014P6.ValidBlue,Membership.mem,Not,Insert.insert,SDiff.sdiff, Imo2014P6.WitnessProof uses:
Classical.choice11 instances, coercions and auxiliary constants left out.
noncomputable def redWitness (L : Finset Line) {B : Finset Line} (hBV : ValidBlue L B) (hmax : ∀ m ∈ L, m ∉ B → ¬ ValidBlue L (insert m B)) {m : Line} (hm : m ∈ L \ B) : Witness L B m := …Mentions: Imo2014P6.Line, Imo2014P6.ValidBlue, Imo2014P6.Witness
- def
Imo2014P6.bluePtsThe blue points: the intersection points of pairs of distinct blue lines line 1810 sourceSource documentation
The blue points: the intersection points of pairs of distinct blue lines.
standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Finset, Imo2014P6.Line,Prod,RealProof uses:
Finset.image, Imo2014P6.Line.interPt,Prod.fst,Prod.snd,Finset.offDiag2 instances, coercions and auxiliary constants left out.
noncomputable def bluePts (B : Finset Line) : Finset (ℝ × ℝ) := …
Mentions: Imo2014P6.Line
- lemma
Imo2014P6.two_mul_card_bluePtsEach blue point has at least two preimages among the ordered pairs of blue lines line 1814 sourceSource documentation
Each blue point has at least two preimages among the ordered pairs of blue lines.
standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Finset, Imo2014P6.Line, Imo2014P6.GeneralPosition,LE.le,Nat,HMul.hMul,OfNat.ofNat,Finset.card,Prod,Real, Imo2014P6.bluePts,HSub.hSubProof uses:
Eq.mpr,Finset.offDiag,id,Eq,congrArg,Eq.symm,Finset.offDiag_card,Finset.image, Imo2014P6.Line.interPt,Prod.fst,Prod.snd,Imo2014P6.bluePts.eq_1,Finset.mul_card_image_le_card,Membership.mem,And,Exists,Finset.filter,Eq.mp,Ne,propextand 16 more29 instances, coercions and auxiliary constants left out.
Tactic trace: 25 steps
Open to load the checked before-and-after goal states.
lemma two_mul_card_bluePts {L : Finset Line} {B : Finset Line} (hGP : GeneralPosition L) (hBL : B ⊆ L) : 2 * (bluePts B).card ≤ B.card * B.card - B.card := by …Mentions: Imo2014P6.Line, Imo2014P6.GeneralPosition, Imo2014P6.bluePts
- lemma
Imo2014P6.assocB_mem_bluePtsThe association map sends red lines into the blue points line 1844 sourceSource documentation
The association map sends red lines into the blue points.
standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Finset, Imo2014P6.Line,LE.le,Membership.mem,SDiff.sdiff, Imo2014P6.Witness, Imo2014P6.GeneralPosition,Prod,Real, Imo2014P6.bluePts, Imo2014P6.assocBProof uses:
Eq.mpr,dite, Imo2014P6.Witness.b,Not,Prod.mk,OfNat.ofNat,id,Eq,congrArg,Imo2014P6.assocB.eq_1,dite_eq_left,And.left,Iff.mp,And,Finset.mem_sdiff,rfl, Imo2014P6.Line.val, Imo2014P6.Witness.g1,And.right,Setand 28 more25 instances, coercions and auxiliary constants left out.
Tactic trace: 11 steps
Open to load the checked before-and-after goal states.
lemma assocB_mem_bluePts (L : Finset Line) {B : Finset Line} (hBL : B ⊆ L) (W : ∀ m ∈ L \ B, Witness L B m) (hGP : GeneralPosition L) {ℓ : Line} (hℓ : ℓ ∈ L \ B) : assocB L B W hGP ℓ ∈ bluePts B := by …Mentions: Imo2014P6.Line, Imo2014P6.Witness, Imo2014P6.GeneralPosition, Imo2014P6.assocB, Imo2014P6.bluePts
- lemma
Imo2014P6.card_red_leThe number of red lines is at most twice the number of blue points line 1864 sourceSource documentation
The number of red lines is at most twice the number of blue points.
standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Finset, Imo2014P6.Line,Membership.mem,SDiff.sdiff, Imo2014P6.Witness, Imo2014P6.GeneralPosition,LE.le,Nat,Finset.card,HMul.hMul,OfNat.ofNat,Prod,Real,Finset.image, Imo2014P6.assocBProof uses:
Finset.card_le_mul_card_image, Imo2014P6.fiber_card_le_two17 instances, coercions and auxiliary constants left out.
Tactic trace: 2 steps
Open to load the checked before-and-after goal states.
lemma card_red_le (L B : Finset Line) (W : ∀ m ∈ L \ B, Witness L B m) (hGP : GeneralPosition L) : (L \ B).card ≤ 2 * ((L \ B).image (assocB L B W hGP)).card := by …Mentions: Imo2014P6.Line, Imo2014P6.Witness, Imo2014P6.GeneralPosition, Imo2014P6.assocB
- lemma
Imo2014P6.main_countingThe grand count:n ≤ k²line 1871 sourceSource documentation
The grand count:
n ≤ k².standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Finset, Imo2014P6.Line, Imo2014P6.GeneralPosition,LE.le,Membership.mem,SDiff.sdiff, Imo2014P6.Witness,Nat,Finset.card,HPow.hPow,OfNat.ofNatProof uses:
HMul.hMul,Prod,Real,Finset.image, Imo2014P6.assocB, Imo2014P6.card_red_le, Imo2014P6.bluePts,Finset.card_le_card,And,Eq,Exists,Eq.mp, Imo2014P6.assocB_mem_bluePts,HSub.hSub, Imo2014P6.two_mul_card_bluePts,Finset.card_sdiff_of_subset,HAdd.hAdd,Nat.sub_add_cancel,Nat.le_mul_self,Eq.symmand 1 more42 instances, coercions and auxiliary constants left out.
Tactic trace: 12 steps
Open to load the checked before-and-after goal states.
lemma main_counting {L : Finset Line} {B : Finset Line} (hGP : GeneralPosition L) (hBL : B ⊆ L) (W : ∀ m ∈ L \ B, Witness L B m) : L.card ≤ B.card ^ 2 := by …Mentions: Imo2014P6.Line, Imo2014P6.GeneralPosition, Imo2014P6.Witness
- lemma
Imo2014P6.not_frontier_subset_of_validBlueIf no finite region has a completely blue boundary in the working sense, then no finite region has a completely blue boundary in the geometric sense line 1889 sourceSource documentation
If no finite region has a completely blue boundary in the working sense, then no finite region has a completely blue boundary in the geometric sense.
standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Finset, Imo2014P6.Line, Imo2014P6.GeneralPosition,LE.le, Imo2014P6.ValidBlue,Bool,Set.Nonempty,Prod,Real, Imo2014P6.Cell,Bornology.IsBounded,Not,Set,frontier,Set.iUnion,Membership.mem, Imo2014P6.Line.setProof uses:
And,Inter.inter,closure,Exists, Imo2014P6.EdgeCtx,Imo2014P6.EdgeCtx.mk,Eq,rfl,LT.lt, Imo2014P6.EdgeCtx.Tmin, Imo2014P6.EdgeCtx.Tmax, Imo2014P6.EdgeCtx.Tmin_lt_Tmax,Set.image, Imo2014P6.Line.param,Imo2014P6.EdgeCtx.ℓ,Set.Icc,Set.Infinite,Set.Infinite.image,Function.Injective.injOn, Imo2014P6.Line.param_injective and 42 more58 instances, coercions and auxiliary constants left out.
Tactic trace: 45 steps
Open to load the checked before-and-after goal states.
lemma not_frontier_subset_of_validBlue {L : Finset Line} {B : Finset Line} (hGP : GeneralPosition L) (hBL : B ⊆ L) (hBV : ValidBlue L B) {σ : Line → Bool} (hne : (Cell L σ).Nonempty) (hbdd : Bornology.IsBounded (Cell L σ)) : ¬ (frontier (Cell L σ) ⊆ ⋃ ℓ ∈ B, ℓ.set) := by …Mentions: Imo2014P6.Line, Imo2014P6.GeneralPosition, Imo2014P6.ValidBlue, Imo2014P6.Cell
- lemma
Imo2014P6.main_resultThe main result: one can colour at least√nlines line 1940 sourceSource documentation
The main result: one can colour at least
√nlines.standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Finset, Imo2014P6.Line, Imo2014P6.GeneralPosition,Exists,And,LE.le,Real,Real.sqrt,Finset.card, Imo2014P6.ValidBlueProof uses:
Membership.mem,Not,Insert.insert, Imo2014P6.exists_maximal_valid,Exists.intro,And.intro,SDiff.sdiff, Imo2014P6.Witness, Imo2014P6.redWitness,Nat,HPow.hPow,OfNat.ofNat, Imo2014P6.main_counting,cast,Eq.symm,Eq.trans,congrArg,Real.sqrt_le_sqrt,Eq.mp,Real.sqrt_sqand 1 more48 instances, coercions and auxiliary constants left out.
Tactic trace: 8 steps
Open to load the checked before-and-after goal states.
lemma main_result (L : Finset Line) (hGP : GeneralPosition L) : ∃ B : Finset Line, B ⊆ L ∧ Real.sqrt L.card ≤ B.card ∧ ValidBlue L B := by …Mentions: Imo2014P6.Line, Imo2014P6.GeneralPosition, Imo2014P6.ValidBlue
- problem
Imo2014P6.imo2014_p6line 1952 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Exists,Nat,GE.ge,Finset, Imo2014P6.Line,Eq,Finset.card, Imo2014P6.GeneralPosition,And,LE.le,Real,Real.sqrt,Bool,Set.Nonempty,Prod, Imo2014P6.Cell,Bornology.IsBounded,Not,Set,frontierand 3 moreProof uses:
Exists.intro,OfNat.ofNat, Imo2014P6.ValidBlue, Imo2014P6.main_result,And.intro,Eq.mp,congrArg, Imo2014P6.not_frontier_subset_of_validBlue35 instances, coercions and auxiliary constants left out.
Tactic trace: 7 steps
Open to load the checked before-and-after goal states.