FormalConjectures/ErdosProblems/80.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 project documentation, Formal Conjectures paper, arXiv v1
9 declarations, 2 contain sorry, 0 declared as axioms
Erdős Problem 80
References:
- erdosproblems.com/80
- erdosproblems.com/600, stated in
FormalConjectures/ErdosProblems/600.lean - [FoLo12] Fox, Jacob and Loh, Po-Shen, On a problem of Erdős and Rothschild on edges in triangles. Combinatorica (2012), 619--628.
600 asks the same question from the other side. Erdos600.eFunction n r is the least edge
count forcing some edge into r triangles; f c n here is the largest book forced once the
edge count is at least $cn^2$. So r ≤ f c n and Erdos600.eFunction n r ≤ c * n^2 say the
same thing, and the two functions are inverse to each other in that sense. Both are built on
SimpleGraph.trianglesContaining, which 600 introduced.
Imports (1)
- def
Erdos80.bookNumberThe size of the largest book inG: the greatest number of triangles sharing a single edge line 49 sourceSource documentation
The size of the largest book in
G: the greatest number of triangles sharing a single edge.Finset.supgives0on a graph with no edges, which is the right answer there.standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Fintype,SimpleGraph,DecidableRel,SimpleGraph.Adj,NatProof uses:
Finset.sup,Sym2,SimpleGraph.edgeFinset,Finset.card,Finset, SimpleGraph.trianglesContaining5 instances, coercions and auxiliary constants left out.
noncomputable def bookNumber : ℕ := …
- def
Erdos80.EveryEdgeInTriangleEvery edge ofGlies in at least one triangle line 53 sourceSource documentation
Every edge of
Glies in at least one triangle.standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Fintype,SimpleGraph,DecidableRel,SimpleGraph.AdjProof uses:
Sym2,Membership.mem,Finset,SimpleGraph.edgeFinset,Finset.Nonempty, SimpleGraph.trianglesContaining4 instances, coercions and auxiliary constants left out.
def EveryEdgeInTriangle : Prop := …
- def
Erdos80.AdmissibleThe graphs the problem quantifies over:nvertices, at least $cn^2$ edges, and every edge in a triangle line 58 sourceSource documentation
The graphs the problem quantifies over:
nvertices, at least $cn^2$ edges, and every edge in a triangle.standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Real,Nat,SimpleGraph,Fin,DecidableRel,SimpleGraph.AdjProof uses:
And,LE.le,HMul.hMul,HPow.hPow,OfNat.ofNat,Finset.card,Sym2,SimpleGraph.edgeFinset, Erdos80.EveryEdgeInTriangle13 instances, coercions and auxiliary constants left out.
def Admissible (c : ℝ) {n : ℕ} (G : SimpleGraph (Fin n)) [DecidableRel G.Adj] : Prop := …Mentions: c
- def
Erdos80.f$f_c(n)$, the largest book size forced on every admissible graph, which is the least book number among them line 69 sourceSource documentation
$f_c(n)$, the largest book size forced on every admissible graph, which is the least book number among them.
sInfof the empty set is0, sof c n = 0when no graph onnvertices has $cn^2$ edges at all. A simple graph has at most $n(n-1)/2$ edges, so that happens for everynonce $c \geq 1/2$. The statements below therefore restrictcto the feasible range; without that they are false at, say,c = 2for reasons unrelated to the question.standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Real,NatProof uses:
InfSet.sInf,Set.ofPred,Exists,SimpleGraph,Fin,And, Erdos80.Admissible,Classical.propDecidable,SimpleGraph.Adj,Eq, Erdos80.bookNumber2 instances, coercions and auxiliary constants left out.
noncomputable def f (c : ℝ) (n : ℕ) : ℕ := …
Mentions: c
- theorem
Erdos80.erdos_80.parts.iDocumented declaration: i sorry line 86 sourceSource documentation
Let $c>0$ and let $f_c(n)$ be the maximal $m$ such that every graph $G$ with $n$ vertices and at least $cn^2$ edges, where each edge is contained in at least one triangle, must contain a book of size $m$, that is, an edge shared by at least $m$ different triangles. Estimate $f_c(n)$. In particular, is it true that $f_c(n)>n^\epsilon$ for some $\epsilon>0$?
The answer is no. Fox and Loh [FoLo12] proved that $f_c(n) \leq n^{O(1/\log\log n)}$ for every fixed $c < 1/4$, so no $\epsilon > 0$ works for, say, $c = 1/8$. For $c > 1/4$ the situation is different: $f_c(n) \geq n/6$, see erdosproblems.com/80.
The bound $c < 1/2$ is what makes the hypothesis satisfiable: a simple graph on $n$ vertices has at most $n(n-1)/2$ edges, so no graph has $cn^2$ of them once $c \geq 1/2$.
L4DEL explanation
Let $c>0$ and let $f_c(n)$ be the maximal $m$ such that every graph $G$ with $n$ vertices and at least $cn^2$ edges, where each edge is contained in at least one triangle, must contain a book of size $m$, that is, an edge shared by at least $m$ different triangles. Estimate $f_c(n)$. In particular, is it true that $f_c(n)>n^\epsilon$ for some $\epsilon>0$? The answer is no. Fox and Loh [FoLo12] proved that $f_c(n) \leq n^{O(1/\log\log n)}$ for every fixed $c < 1/4$, so no $\epsilon > 0$ works for, say, $c = 1/8$. For $c > 1/4$ the situation is different: $f_c(n) \geq n/6$, see erdosproblems.com/80. The bound $c < 1/2$ is what makes the hypothesis satisfiable: a simple graph on $n$ vertices has at most $n(n-1)/2$ edges, so no graph has $cn^2$ of them once $c \geq 1/2$.
Sources and attribution: Pinned Lean source (1646ca16afd6)
depends on sorry what this means
Statement uses:
Iff,False,Real,LT.lt,OfNat.ofNat,HDiv.hDiv,Nat,Exists,And,GT.gt,Filter.Eventually,HPow.hPow, Erdos80.f,Filter.atTopProof uses:
sorryAx,Lean.Name,Bool.false,Lean.Name.num,Lean.Name.str,Lean.Name.anonymous34 instances, coercions and auxiliary constants left out.
Tactic trace: 1 steps
Open to load the checked before-and-after goal states.
theorem erdos_80.parts.i : answer(False) ↔ ∀ c : ℝ, 0 < c → c < 1 / 2 → ∃ ε > (0 : ℝ), ∀ᶠ n : ℕ in atTop, (n : ℝ) ^ ε < f c n := by … - theorem
Erdos80.erdos_80.parts.iiThe weaker question from the same problem: is $f_c(n) \gg \log n$? sorry line 97 sourceSource documentation
The weaker question from the same problem: is $f_c(n) \gg \log n$?
Same feasibility bound on
cas above.depends on sorry what this means
Statement uses:
Iff,True,Real,LT.lt,OfNat.ofNat,HDiv.hDiv,Nat,Asymptotics.IsBigO,Filter.atTop,Real.log, Erdos80.fProof uses:
sorryAx,Lean.Name,Bool.false,Lean.Name.num,Lean.Name.str,Lean.Name.anonymous32 instances, coercions and auxiliary constants left out.
Tactic trace: 1 steps
Open to load the checked before-and-after goal states.
theorem erdos_80.parts.ii : answer(sorry) ↔ ∀ c : ℝ, 0 < c → c < 1 / 2 → (fun n : ℕ ↦ (f c n : ℝ)) ≫ (fun n : ℕ ↦ Real.log n) := by … - theorem
Erdos80.bookNumber_eq_zero_iffA book is counted by triangles, sobookNumberis0exactly when no edge lies in one line 105 sourceSource documentation
A book is counted by triangles, so
bookNumberis0exactly when no edge lies in one.standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Fintype,SimpleGraph,DecidableRel,SimpleGraph.Adj,Iff,Eq,Nat, Erdos80.bookNumber,OfNat.ofNat,Sym2,Membership.mem,Finset,SimpleGraph.edgeFinset, SimpleGraph.trianglesContaining,EmptyCollection.emptyCollectionProof uses:
of_eq_true,Eq.trans,Set,SimpleGraph.edgeSet,True,congr,congrArg,Finset.sup,Finset.card,forall_congr,implies_congr,Eq.refl,iff_self24 instances, coercions and auxiliary constants left out.
Tactic trace: 1 steps
Open to load the checked before-and-after goal states.
theorem bookNumber_eq_zero_iff : bookNumber G = 0 ↔ ∀ e ∈ G.edgeFinset, G.trianglesContaining e = ∅ := by …Mentions: Erdos80.bookNumber
- theorem
Erdos80.bookNumber_botOn a graph with no edges there is no book line 111 sourceSource documentation
On a graph with no edges there is no book.
standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat,Eq, Erdos80.bookNumber,Fin,Bot.bot,SimpleGraph,OfNat.ofNatProof uses:
of_eq_true,Finset.sup,Sym2,SimpleGraph.edgeFinset,Finset.card,Finset, SimpleGraph.trianglesContaining,Eq.trans,Membership.mem,True,forall_congr,False,EmptyCollection.emptyCollection,implies_congr,Set,SimpleGraph.edgeSet,congrFun',congrArg,SimpleGraph.edgeSet_bot,implies_true35 instances, coercions and auxiliary constants left out.
Tactic trace: 1 steps
Open to load the checked before-and-after goal states.
theorem bookNumber_bot {n : ℕ} : bookNumber (⊥ : SimpleGraph (Fin n)) = 0 := by …Mentions: Erdos80.bookNumber
- theorem
Erdos80.everyEdgeInTriangle_botEveryEdgeInTriangleholds vacuously on a graph with no edges, so the admissible set is nonempty only through the edge count line 117 sourceSource documentation
EveryEdgeInTriangleholds vacuously on a graph with no edges, so the admissible set is nonempty only through the edge count.standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat, Erdos80.EveryEdgeInTriangle,Fin,Bot.bot,SimpleGraphProof uses:
of_eq_true,Sym2,Membership.mem,Finset,SimpleGraph.edgeFinset,Finset.Nonempty, SimpleGraph.trianglesContaining,Eq.trans,True,forall_congr,False,implies_congr,Set,SimpleGraph.edgeSet,EmptyCollection.emptyCollection,congrFun',congrArg,SimpleGraph.edgeSet_bot,Eq.refl,implies_true22 instances, coercions and auxiliary constants left out.
Tactic trace: 1 steps
Open to load the checked before-and-after goal states.
theorem everyEdgeInTriangle_bot {n : ℕ} : EveryEdgeInTriangle (⊥ : SimpleGraph (Fin n)) := by …Mentions: Erdos80.EveryEdgeInTriangle