FormalConjecturesForMathlib/Combinatorics/SimpleGraph/Chordal.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

9 declarations, 0 contain sorry, 0 declared as axioms

Chordal graphs and clique edge partitions

Definitions and basic results used in Erdős Problem 81.

Imports (3)
Imported by 1 file
  1. def SimpleGraph.IsChordal A graph is chordal if it contains no induced cycle of length k ≥ 4 line 35 source

    Source documentation

    A graph is chordal if it contains no induced cycle of length k ≥ 4.

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

    Statement uses: SimpleGraph

    Proof uses: Nat, LE.le, OfNat.ofNat, Not, SimpleGraph.IsIndContained, Fin, SimpleGraph.cycleGraph

    2 instances, coercions and auxiliary constants left out.

    def IsChordal (G : SimpleGraph V) : Prop :=
    …
  2. def SimpleGraph.IsCliqueEdgePartition Documented declaration: IsCliqueEdgePartition line 41 source

    Source documentation

    P is a partition of the edges of G into cliques: each member of P is a clique of G with at least two vertices, and every edge of G is contained in exactly one member of P.

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

    Statement uses: SimpleGraph, Finset

    Proof uses: And, Membership.mem, LE.le, Nat, OfNat.ofNat, Finset.card, SimpleGraph.IsClique, SimpleGraph.Adj, ExistsUnique

    5 instances, coercions and auxiliary constants left out.

    def IsCliqueEdgePartition (G : SimpleGraph V) (P : Finset (Finset V)) : Prop :=
    …
  3. def SimpleGraph.IsSplitGraph A graph is a split graph if its vertex set splits into a clique and an independent set line 47 source

    Source documentation

    A graph is a split graph if its vertex set splits into a clique and an independent set.

    no axioms what this means

    Statement uses: SimpleGraph

    Proof uses: Exists, Set, And, SimpleGraph.IsClique, SimpleGraph.IsIndepSet, Compl.compl

    1 instances, coercions and auxiliary constants left out.

    def IsSplitGraph (G : SimpleGraph V) : Prop :=
    …
  4. theorem SimpleGraph.exists_isCliqueEdgePartition_card_eq Every finite graph has a clique edge partition consisting of its edges line 51 source

    Source documentation

    Every finite graph has a clique edge partition consisting of its edges.

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

    Statement uses: Fintype, DecidableEq, SimpleGraph, DecidableRel, SimpleGraph.Adj, Exists, Finset, And, SimpleGraph.IsCliqueEdgePartition, Eq, Nat, Finset.card, Sym2, SimpleGraph.edgeFinset

    Proof uses: Exists.intro, Finset.image, Sym2.toFinset, And.intro, Membership.mem, LE.le, OfNat.ofNat, SimpleGraph.IsClique, ExistsUnique, Eq.mpr, Set, SimpleGraph.edgeSet, id, forall_congr, implies_congr, Eq.trans, congrArg, funext, congrFun', Eq.refl and 28 more

    27 instances, coercions and auxiliary constants left out.

    Tactic trace: 32 steps

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

    theorem exists_isCliqueEdgePartition_card_eq {V : Type*} [Fintype V] [DecidableEq V]
        (G : SimpleGraph V) [DecidableRel G.Adj] :
        ∃ P : Finset (Finset V), G.IsCliqueEdgePartition P ∧ P.card = G.edgeFinset.card := by
    …
  5. lemma SimpleGraph.cycleGraph_adj_succ line 80 source
  6. lemma SimpleGraph.cycleGraph_not_adj_add_two line 83 source
  7. theorem SimpleGraph.IsSplitGraph.isChordal Every split graph is chordal line 101 source

    Source documentation

    Every split graph is chordal.

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

    Statement uses: SimpleGraph, SimpleGraph.IsSplitGraph, SimpleGraph.IsChordal

    Proof uses: Set, And, SimpleGraph.IsClique, SimpleGraph.IsIndepSet, Compl.compl, Nat, LE.le, OfNat.ofNat, SimpleGraph.IsIndContained, Fin, SimpleGraph.cycleGraph, False, SimpleGraph.Embedding, Eq, HAdd.hAdd, Exists, Nat.exists_eq_add_of_le', Membership.mem, SimpleGraph.Adj, Ne and 12 more

    18 instances, coercions and auxiliary constants left out.

    Tactic trace: 19 steps

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

    theorem IsSplitGraph.isChordal {V : Type*} {G : SimpleGraph V} (hG : G.IsSplitGraph) :
        G.IsChordal := by
    …
  8. theorem SimpleGraph.isCliqueEdgePartition_bot_empty The empty family partitions the edges of an edgeless graph line 122 source

    Source documentation

    The empty family partitions the edges of an edgeless graph.

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

    Statement uses: SimpleGraph.IsCliqueEdgePartition, Bot.bot, SimpleGraph, EmptyCollection.emptyCollection, Finset

    Proof uses: of_eq_true, And, Membership.mem, LE.le, Nat, OfNat.ofNat, Finset.card, SimpleGraph.IsClique, SimpleGraph.Adj, ExistsUnique, Eq.trans, True, congr, congrArg, forall_congr, False, Set.Subsingleton, implies_congr, implies_true, funext and 3 more

    22 instances, coercions and auxiliary constants left out.

    Tactic trace: 1 steps

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

    @[simp] theorem isCliqueEdgePartition_bot_empty :
        (⊥ : SimpleGraph V).IsCliqueEdgePartition ∅ := by
    …

    Mentions: SimpleGraph.IsCliqueEdgePartition

  9. theorem SimpleGraph.isSplitGraph_bot An edgeless graph is split, including when its vertex type is empty line 127 source

    Source documentation

    An edgeless graph is split, including when its vertex type is empty.

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

    Statement uses: SimpleGraph.IsSplitGraph, Bot.bot, SimpleGraph

    Proof uses: Exists.intro, Set, And, SimpleGraph.IsClique, SimpleGraph.IsIndepSet, Compl.compl, EmptyCollection.emptyCollection, And.intro, of_eq_true, Eq.trans, Set.Subsingleton, True, Membership.mem, Not, Eq, SimpleGraph.Adj, forall_congr, implies_congr, Set.univ, congrFun' and 6 more

    16 instances, coercions and auxiliary constants left out.

    Tactic trace: 3 steps

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

    theorem isSplitGraph_bot : (⊥ : SimpleGraph V).IsSplitGraph := by
    …

    Mentions: SimpleGraph.IsSplitGraph