Dirac's lemma, strong form: in a chordless-cycle-free adjacency structure, every vertex set is a clique or contains two nonadjacent simplicial vertices.
∀ {ι : Type u_1} [inst : DecidableEq ι] (𝒞 : Finset (Finset ι)),
(¬∃ l, HiddenChannelCapacity.IsChordlessCycle 𝒞 l) →
∀ (S : Finset ι),
(∀ x ∈ S, ∀ y ∈ S, x ≠ y → HiddenChannelCapacity.Adj 𝒞 x y) ∨
∃ u w,
HiddenChannelCapacity.SimpIn 𝒞 S u ∧
HiddenChannelCapacity.SimpIn 𝒞 S w ∧ u ≠ w ∧ ¬HiddenChannelCapacity.Adj 𝒞 u w- DeclHiddenChannelCapacity.dirac_strongDeclaration kindtheorem
∀ {ι : Type u_1} [inst : DecidableEq ι] (𝒞 : Finset (Finset ι)), (¬∃ l, HiddenChannelCapacity.IsChordlessCycle 𝒞 l) → ∀ (S : Finset ι), (∀ x ∈ S, ∀ y ∈ S, x ≠ y → HiddenChannelCapacity.Adj 𝒞 x y) ∨ ∃ u w, HiddenChannelCapacity.SimpIn 𝒞 S u ∧ HiddenChannelCapacity.SimpIn 𝒞 S w ∧ u ≠ w ∧ ¬HiddenChannelCapacity.Adj 𝒞 u wHiddenChannelCapacity.AdjHiddenChannelCapacity.IsChordlessCycleHiddenChannelCapacity.IsWalkOnHiddenChannelCapacity.ReachOnHiddenChannelCapacity.SimpInHiddenChannelCapacity.instDecidableAdjUses
- HiddenChannelCapacity.erase_separates
- HiddenChannelCapacity.exists_connector
- HiddenChannelCapacity.exists_min_path
- HiddenChannelCapacity.reachOn_extend
- HiddenChannelCapacity.reachOn_of_mem_walk
- HiddenChannelCapacity.reachOn_of_walk
- HiddenChannelCapacity.reachOn_refl
- HiddenChannelCapacity.reachOn_symm
- HiddenChannelCapacity.reachOn_trans
- HiddenChannelCapacity.sep_clique_step
- DeclHiddenChannelCapacity.sep_clique_stepDeclaration kindtheorem
The assembled-cycle contradiction: two length-minimal x-y connectors through disjoint, mutually non-adjacent sides cannot coexist with chordless-cycle-freeness when x and y are non-adjacent.
∀ {ι : Type u_1} [inst : DecidableEq ι] {𝒞 : Finset (Finset ι)}, (¬∃ l, HiddenChannelCapacity.IsChordlessCycle 𝒞 l) → ∀ {QA QB : ι → Prop} {x y : ι}, x ≠ y → ¬HiddenChannelCapacity.Adj 𝒞 x y → ¬QB x → ¬QB y → (∀ (v : ι), QA v → QB v → False) → (∀ (u v : ι), QA u → QB v → ¬HiddenChannelCapacity.Adj 𝒞 u v) → ∀ (pA : List ι), List.IsChain (HiddenChannelCapacity.Adj 𝒞) pA → pA.Nodup → pA.head? = some x → pA.getLast? = some y → (∀ v ∈ pA, v = x ∨ v = y ∨ QA v) → (∀ (q : List ι), (List.IsChain (HiddenChannelCapacity.Adj 𝒞) q ∧ q.Nodup ∧ q.head? = some x ∧ q.getLast? = some y ∧ ∀ v ∈ q, v = x ∨ v = y ∨ QA v) → pA.length ≤ q.length) → ∀ (pB : List ι), List.IsChain (HiddenChannelCapacity.Adj 𝒞) pB → pB.Nodup → pB.head? = some x → pB.getLast? = some y → (∀ v ∈ pB, v = x ∨ v = y ∨ QB v) → (∀ (q : List ι), (List.IsChain (HiddenChannelCapacity.Adj 𝒞) q ∧ q.Nodup ∧ q.head? = some x ∧ q.getLast? = some y ∧ ∀ v ∈ q, v = x ∨ v = y ∨ QB v) → pB.length ≤ q.length) → FalseUses
- DeclHiddenChannelCapacity.no_chord_of_minimalDeclaration kindtheorem
Minimality kills chords: a length-minimal constrained x-y path has no adjacency between positions at distance ≥ 2.
∀ {ι : Type u_1} {𝒞 : Finset (Finset ι)} {Q : ι → Prop} {x y : ι} {p : List ι}, List.IsChain (HiddenChannelCapacity.Adj 𝒞) p → p.head? = some x → p.getLast? = some y → (∀ v ∈ p, v = x ∨ v = y ∨ Q v) → (∀ (q : List ι), (List.IsChain (HiddenChannelCapacity.Adj 𝒞) q ∧ q.Nodup ∧ q.head? = some x ∧ q.getLast? = some y ∧ ∀ v ∈ q, v = x ∨ v = y ∨ Q v) → p.length ≤ q.length) → p.Nodup → ∀ {i j : ℕ} (hi : i < p.length) (hj : j < p.length), i + 2 ≤ j → ¬HiddenChannelCapacity.Adj 𝒞 p[i] p[j] - DeclHiddenChannelCapacity.mod_succ_casesDeclaration kindtheorem
∀ (n i : ℕ), i < n → (i + 1) % n = i + 1 ∧ i + 1 < n ∨ (i + 1) % n = 0 ∧ i + 1 = n
- DeclHiddenChannelCapacity.getLast_getElemDeclaration kindtheorem
∀ {ι : Type u_1} {p : List ι} {y : ι}, p.getLast? = some y → ∀ (h0 : 0 < p.length), p[p.length - 1] = y - DeclHiddenChannelCapacity.getElem_cyclePairsDeclaration kindtheorem
∀ {ι : Type u_1} [inst : DecidableEq ι] (l : List ι) (h0 : 0 < l.length) (i : ℕ) (h : i < (HiddenChannelCapacity.cyclePairs l).length), (HiddenChannelCapacity.cyclePairs l)[i] = {l[i], l[(i + 1) % l.length]} - DeclHiddenChannelCapacity.length_cyclePairsDeclaration kindtheorem
∀ {ι : Type u_1} [inst : DecidableEq ι] (l : List ι), (HiddenChannelCapacity.cyclePairs l).length = l.length - DeclHiddenChannelCapacity.reachOn_transDeclaration kindtheorem
∀ {ι : Type u_1} {𝒞 : Finset (Finset ι)} {P : ι → Prop} {u v w : ι}, HiddenChannelCapacity.ReachOn 𝒞 P u v → HiddenChannelCapacity.ReachOn 𝒞 P v w → HiddenChannelCapacity.ReachOn 𝒞 P u w - DeclHiddenChannelCapacity.reachOn_symmDeclaration kindtheorem
∀ {ι : Type u_1} {𝒞 : Finset (Finset ι)} {P : ι → Prop} {u v : ι}, HiddenChannelCapacity.ReachOn 𝒞 P u v → HiddenChannelCapacity.ReachOn 𝒞 P v u - DeclHiddenChannelCapacity.reachOn_reflDeclaration kindtheorem
∀ {ι : Type u_1} {𝒞 : Finset (Finset ι)} {P : ι → Prop} {u : ι}, P u → HiddenChannelCapacity.ReachOn 𝒞 P u u - DeclHiddenChannelCapacity.reachOn_of_mem_walkDeclaration kindtheorem
Every vertex on a walk is reachable from its head.
∀ {ι : Type u_1} {𝒞 : Finset (Finset ι)} {P : ι → Prop} {u v : ι} {p : List ι}, HiddenChannelCapacity.IsWalkOn 𝒞 P p → p.head? = some u → v ∈ p → HiddenChannelCapacity.ReachOn 𝒞 P u v - DeclHiddenChannelCapacity.reachOn_extendDeclaration kindtheorem
∀ {ι : Type u_1} {𝒞 : Finset (Finset ι)} {P : ι → Prop} {u v w : ι}, HiddenChannelCapacity.ReachOn 𝒞 P u v → HiddenChannelCapacity.Adj 𝒞 v w → P w → HiddenChannelCapacity.ReachOn 𝒞 P u w - DeclHiddenChannelCapacity.exists_min_pathDeclaration kindtheorem
∀ {ι : Type u_1} {Q : List ι → Prop}, (∃ p, Q p) → ∃ p, Q p ∧ ∀ (q : List ι), Q q → p.length ≤ q.length - DeclHiddenChannelCapacity.exists_connectorDeclaration kindtheorem
A connector: an x-y path with interior inside
Q, from adjacent entry points and interior reachability.∀ {ι : Type u_1} {𝒞 : Finset (Finset ι)} {Q : ι → Prop} {x y u₁ u₂ : ι}, x ≠ y → HiddenChannelCapacity.Adj 𝒞 x u₁ → HiddenChannelCapacity.Adj 𝒞 y u₂ → HiddenChannelCapacity.ReachOn 𝒞 Q u₁ u₂ → ¬Q x → ¬Q y → ∃ p, List.IsChain (HiddenChannelCapacity.Adj 𝒞) p ∧ p.Nodup ∧ p.head? = some x ∧ p.getLast? = some y ∧ ∀ v ∈ p, v = x ∨ v = y ∨ Q v - DeclHiddenChannelCapacity.erase_separatesDeclaration kindtheorem
If
xhas no neighbor reachable fromaoff the separator, then erasingxstill separates: the firstx-occurrence on any violating path has its predecessor reachable fromaand adjacent tox.∀ {ι : Type u_1} [inst : DecidableEq ι] {𝒞 : Finset (Finset ι)} {S Sep : Finset ι} {a b x : ι}, x ≠ a → (∀ (u : ι), u ∈ S \ Sep ∧ HiddenChannelCapacity.ReachOn 𝒞 (fun v => v ∈ S \ Sep) a u → ¬HiddenChannelCapacity.Adj 𝒞 x u) → ¬HiddenChannelCapacity.ReachOn 𝒞 (fun v => v ∈ S \ Sep) a b → ¬HiddenChannelCapacity.ReachOn 𝒞 (fun v => v ∈ S \ Sep.erase x) a bUses
- DeclHiddenChannelCapacity.reachOn_of_walkDeclaration kindtheorem
Every chained walk contains a duplicate-free path with the same endpoints and vertices.
∀ {ι : Type u_1} {𝒞 : Finset (Finset ι)} {P : ι → Prop} (p : List ι), HiddenChannelCapacity.IsWalkOn 𝒞 P p → ∀ {u v : ι}, p.head? = some u → p.getLast? = some v → HiddenChannelCapacity.ReachOn 𝒞 P u v - DeclHiddenChannelCapacity.isChain_dropDeclaration kindtheorem
∀ {ι : Type u_1} {R : ι → ι → Prop} {p : List ι}, List.IsChain R p → ∀ (n : ℕ), List.IsChain R (List.drop n p) - DeclHiddenChannelCapacity.isChain_takeDeclaration kindtheorem
∀ {ι : Type u_1} {R : ι → ι → Prop} {p : List ι}, List.IsChain R p → ∀ (n : ℕ), List.IsChain R (List.take n p) - DeclHiddenChannelCapacity.head_getElemDeclaration kindtheorem
Positional form of the head.
∀ {ι : Type u_1} {p : List ι} {x : ι}, p.head? = some x → ∀ (h0 : 0 < p.length), p[0] = x - DeclHiddenChannelCapacity.gcast_listDeclaration kindtheorem
∀ {ι : Type u_1} (l : List ι) {s t : ℕ} (hs : s < l.length) (ht : t < l.length), s = t → l[s] = l[t] - DeclHiddenChannelCapacity.Adj.symm'Declaration kindtheorem
∀ {ι : Type u_1} {𝒞 : Finset (Finset ι)} {u v : ι}, HiddenChannelCapacity.Adj 𝒞 u v → HiddenChannelCapacity.Adj 𝒞 v u - Hypothesishchord
¬∃ l, HiddenChannelCapacity.IsChordlessCycle 𝒞 l
- DefinitionHiddenChannelCapacity.Adjdef
Primal adjacency: distinct co-hosted vertices.
{ι : Type u_1} → Finset (Finset ι) → ι → ι → Prop - DefinitionHiddenChannelCapacity.IsChordlessCycledef
A chordless cycle: duplicate-free, length ≥ 4, consecutive pairs hosted, and the only adjacencies among its vertices are the cyclically consecutive ones.
{ι : Type u_1} → [DecidableEq ι] → Finset (Finset ι) → List ι → Prop - DefinitionHiddenChannelCapacity.IsWalkOndef
A walk constrained to
P: chained adjacencies, every vertex satisfiesP.{ι : Type u_1} → Finset (Finset ι) → (ι → Prop) → List ι → Prop - DefinitionHiddenChannelCapacity.ReachOndef
Reachability within
P: a duplicate-free walk with the given endpoints.{ι : Type u_1} → Finset (Finset ι) → (ι → Prop) → ι → ι → Prop - DefinitionHiddenChannelCapacity.SimpIndef
vis simplicial within the vertex setS: it lies inSand its𝒞-neighbors insideSare pairwise adjacent.{ι : Type u_1} → Finset (Finset ι) → Finset ι → ι → Prop - DefinitionHiddenChannelCapacity.cyclePairsdef
The consecutive-pair supports of a cyclic vertex list.
{ι : Type u_1} → [DecidableEq ι] → List ι → List (Finset ι) - DefinitionHiddenChannelCapacity.instDecidableAdjdef
{ι : Type u_1} → [DecidableEq ι] → (𝒞 : Finset (Finset ι)) → (u v : ι) → Decidable (HiddenChannelCapacity.Adj 𝒞 u v)
Verification
- Replay
- accepted
- Axioms
- Classical.choiceQuot.soundpropext
- Statement identity
- not-applicable
- Substrate
- Lean 4 kernel v4.31.0
- Dictionary pin
- design-lab@5802df4 · initial
- Frozen export
- 20e38a6b8d2b
- Verified
- 2026-09-24T00:00:00Z