Terminal compression in every degree #
Keep all edges between blocks, including parallel edges. Endpoint charging bounds the
edge count of the terminal core by 3d/(2d-3) times the original cycle rank. Expanding
a layout of this multigraph core costs only d log₂ |V| + d.
noncomputable def
Complexity.Frontier.Multigraph.Compression.multiQuotient
{V : Type u_1}
{E : Type u_2}
{G : Multigraph V E}
{d : ℕ}
(c : G.Compression d)
:
Multigraph ↥c.blocks ↑c.External
The quotient retaining every edge between blocks.
Equations
Instances For
theorem
Complexity.Frontier.Multigraph.Compression.multiQuotient_loopless
{V : Type u_1}
{E : Type u_2}
{G : Multigraph V E}
{d : ℕ}
(c : G.Compression d)
:
theorem
Complexity.Frontier.Multigraph.Compression.ncard_edgesAt_multiQuotient
{V : Type u_1}
{E : Type u_2}
{G : Multigraph V E}
{d : ℕ}
(c : G.Compression d)
(B : ↥c.blocks)
:
theorem
Complexity.Frontier.Multigraph.Compression.multiQuotient_maxDegreeLE
{V : Type u_1}
{E : Type u_2}
{G : Multigraph V E}
{d : ℕ}
(c : G.Compression d)
:
theorem
Complexity.Frontier.Multigraph.Compression.Terminal.multi_degree_sum
{V : Type u_1}
{E : Type u_2}
{G : Multigraph V E}
{d : ℕ}
(c : G.Compression d)
[Finite E]
(hc : c.Terminal)
(e : ↑c.External)
:
d + 3 ≤ (c.multiQuotient.edgesAt (c.multiQuotient.src e)).ncard + (c.multiQuotient.edgesAt (c.multiQuotient.tgt e)).ncard
theorem
Complexity.Frontier.Multigraph.Compression.Terminal.multi_degree_ge_three
{V : Type u_1}
{E : Type u_2}
{G : Multigraph V E}
{d : ℕ}
(c : G.Compression d)
[Finite E]
(hc : c.Terminal)
(hG : G.Connected)
(two : 2 ≤ c.blocks.card)
(B : ↥c.blocks)
:
theorem
Complexity.Frontier.Multigraph.Compression.Terminal.multi_blocks_le_edges
{V : Type u_1}
{E : Type u_2}
{G : Multigraph V E}
{d : ℕ}
(c : G.Compression d)
[Finite E]
(hc : c.Terminal)
(hG : G.Connected)
(two : 2 ≤ c.blocks.card)
:
A nontrivial terminal core has at least as many edges as blocks.
theorem
Complexity.Frontier.Multigraph.Compression.Terminal.multi_edge_bound
{V : Type u_1}
{E : Type u_2}
{G : Multigraph V E}
{d : ℕ}
(c : G.Compression d)
[Finite E]
(hc : c.Terminal)
(hG : G.Connected)
(two : 2 ≤ c.blocks.card)
:
The terminal multigraph core has at most 3d/(2d-3) times the original cycle rank
edges, expressed without division.
theorem
Complexity.Frontier.Multigraph.Compression.exists_layout_multi
{V : Type u_1}
{E : Type u_2}
{G : Multigraph V E}
{d : ℕ}
(c : G.Compression d)
[Finite V]
[Finite E]
{key : ↥c.blocks → ℕ}
(hkey : Function.Injective key)
{X : ℝ}
(hX : ∀ (q : ℕ), ↑(c.multiQuotient.cut {B : ↥c.blocks | key B < q}).ncard ≤ X)
:
Expand any layout of the multigraph core, with only logarithmic additional width.