FormalConjectures/Paper/KotzigConjecture.lean

GitHub source file

Explanation legend Lean4 Domain Explanation Language (L4DEL)

L4DEL explanations are a separate layer. They do not change the Lean source. Intuition is explanatory prose; numbered items are a reading path; sources link the wording back to evidence.

L4DEL
Lean4 Domain Explanation Language

Credit: The upstream authors and contributors retain credit for the project and mathematics. lean4-explainer only renders their pinned source and adds the separately disclosed explanation layer.

Project sources: Pinned project documentation, Formal Conjectures paper, arXiv v1

1 declarations, 1 contain sorry, 0 declared as axioms

Kotzig's Conjecture

Reference: A. Kotzig, cited in A. Rosa, On certain valuations of the vertices of a graph, Theory of Graphs (Internat. Sympos., Rome, 1966), Gordon and Breach, 1967, pp. 349–355.

Kotzig conjectured that for every $n$, the complete graph $K_{2n+1}$ decomposes into copies of any $n$-edge tree via cyclic shifts of a single embedding. This is strictly stronger than Ringel's conjecture; see Paper/RingelConjecture.lean. The large-$n$ case is proved by Montgomery–Pokrovskiy–Sudakov; see Arxiv/2001.02665/RingelConjecture.lean.

Imports (1)
  1. theorem KotzigConjecture.kotzig_conjecture For any tree $T$ with $n$ edges, the complete graph $K_{2n+1}$ decomposes into $2n+1$ edge-disjoint copies of $T$ via cyclic shifts of a single embedding sorry line 46 source

    Source documentation

    For any tree $T$ with $n$ edges, the complete graph $K_{2n+1}$ decomposes into $2n+1$ edge-disjoint copies of $T$ via cyclic shifts of a single embedding.

    The $2n+1$ copies are $f_0, f_1, \dots, f_{2n}$ where $f_i(v) = f_0(v) + i$ for all vertices $v$ — each copy is obtained by adding $i \pmod{2n+1}$ to every vertex of the base copy. This is strictly stronger than RingelConjecture.ringel_conjecture.

    depends on sorry what this means

    Statement uses: Finite, SimpleGraph, SimpleGraph.IsTree, Nat, Eq, Set.ncard, Sym2, SimpleGraph.edgeSet, Exists, Fin, HAdd.hAdd, HMul.hMul, OfNat.ofNat, Function.Embedding, And, Pairwise, Disjoint, Set, SimpleGraph.map, iSup and 1 more

    Proof uses: sorryAx, Lean.Name, Bool.false, Lean.Name.num, Lean.Name.str, Lean.Name.anonymous

    42 instances, coercions and auxiliary constants left out.

    Tactic trace: 1 steps

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

    theorem kotzig_conjecture {V : Type} [Finite V]
        (T : SimpleGraph V) (hT : T.IsTree)
        (n : ℕ) (hn : T.edgeSet.ncard = n) :
        ∃ f : Fin (2 * n + 1) → (V ↪ Fin (2 * n + 1)),
          (∀ i v, f i v = f 0 v + i) ∧
          Pairwise (fun i j => Disjoint (T.map (f i)).edgeSet (T.map (f j)).edgeSet) ∧
          ⨆ i, T.map (f i) = (⊤ : SimpleGraph (Fin (2 * n + 1))) := by
    …