The values of #3-Colorability, counting all independent sets, and counting all vertex covers
Lax859101.AllSetsValues · concepts/Lax859101/AllSetsValues.lean · lax-859101
No public endorsements yet.
Loading review…
Sign in with ORCIDNatural Language Statement
Lemma
The number counted by each of #3-Colorability, counting all independent sets, and counting all vertex covers is invariant under isomorphism of instances, so the value of each problem on an instance is the number it counts.
Concept map
Evidence
This concept declares 6 statements. Each proof establishes one of them relative to its assumptions.
1 sharpAllIndependentSets_count_iso proven
2 sharpAllIndependentSets_eq proven
3 sharpAllVertexCovers_count_iso proven
4 sharpAllVertexCovers_eq proven
5 sharpThreeCol_count_iso proven
6 sharpThreeCol_eq proven
Lean source view on GitHub
| 1 | import Lax904597.Problems |
| 2 | import Lax904597.Sat |
| 3 | import Mathlib.ModelTheory.Graph |
| 4 | import Lax799700.SetFamily |
| 5 | import Lax366625.CountingProblems |
| 6 | import Lax366625.CountingClasses |
| 7 | import Lax366625.WitnessCounting |
| 8 | import Lax366625.CountingSat |
| 9 | import Lax859101.OneCallReductions |
| 10 | import Lax859101.SubtractiveReductions |
| 11 | import Lax859101.CountingDnf |
| 12 | import Lax859101.CountingNaeSat |
| 13 | import Lax859101.CountingRestrictedSat |
| 14 | import Lax859101.CountingAllSets |
| 15 | import Lax859101.CountingBipartite |
| 16 | |
| 17 | /-! |
| 18 | --- |
| 19 | title: The values of #3-Colorability, counting all independent sets, and counting all vertex covers |
| 20 | type: lemma |
| 21 | --- |
| 22 | The number counted by each of #3-Colorability, counting all independent |
| 23 | sets, and counting all vertex covers is invariant under isomorphism of |
| 24 | instances, so the value of each problem on an instance is the number it |
| 25 | counts. |
| 26 | -/ |
| 27 | |
| 28 | namespace Lax859101.AllSetsValues |
| 29 | |
| 30 | open FirstOrder FirstOrder.Language FirstOrder.Language.Structure |
| 31 | open Lax904597.Problems Lax904597.Sat Lax799700.SetFamily |
| 32 | open Lax366625.CountingProblems Lax366625.CountingClasses Lax366625.WitnessCounting |
| 33 | Lax366625.CountingSat |
| 34 | open Lax859101.OneCallReductions Lax859101.SubtractiveReductions Lax859101.CountingDnf |
| 35 | Lax859101.CountingNaeSat Lax859101.CountingRestrictedSat Lax859101.CountingAllSets |
| 36 | Lax859101.CountingBipartite |
| 37 | |
| 38 | /-- The number counted by #3-Colorability is isomorphism-invariant. -/ |
| 39 | axiom sharpThreeCol_count_iso : |
| 40 | ∀ {A B : Type} [FirstOrder.Language.graph.Structure A] [FirstOrder.Language.graph.Structure B], |
| 41 | (A ≃[FirstOrder.Language.graph] B) → Nat.card |
| 42 | {χ : A → Fin 3 // ∀ x y : A, RelMap Language.adj ![x, y] → χ x ≠ χ y} = Nat.card |
| 43 | {χ : B → Fin 3 // ∀ x y : B, RelMap Language.adj ![x, y] → χ x ≠ χ y} |
| 44 | |
| 45 | /-- The value of #3-Colorability is the number it counts. -/ |
| 46 | axiom sharpThreeCol_eq : |
| 47 | ∀ (A : Type) [FirstOrder.Language.graph.Structure A], SharpThreeCol A = Nat.card |
| 48 | {χ : A → Fin 3 // ∀ x y : A, RelMap Language.adj ![x, y] → χ x ≠ χ y} |
| 49 | |
| 50 | /-- The number counted by counting all independent sets is isomorphism-invariant. -/ |
| 51 | axiom sharpAllIndependentSets_count_iso : |
| 52 | ∀ {A B : Type} [FirstOrder.Language.graph.Structure A] [FirstOrder.Language.graph.Structure B], |
| 53 | (A ≃[FirstOrder.Language.graph] B) → Nat.card {S : A → Prop // IndepSet (fun x y : A => |
| 54 | RelMap Language.adj ![x, y]) S} = Nat.card {S : B → Prop // IndepSet (fun x y : B => |
| 55 | RelMap Language.adj ![x, y]) S} |
| 56 | |
| 57 | /-- The value of counting all independent sets is the number it counts. -/ |
| 58 | axiom sharpAllIndependentSets_eq : |
| 59 | ∀ (A : Type) [FirstOrder.Language.graph.Structure A], SharpAllIndependentSets A = Nat.card |
| 60 | {S : A → Prop // IndepSet (fun x y : A => RelMap Language.adj ![x, y]) S} |
| 61 | |
| 62 | /-- The number counted by counting all vertex covers is isomorphism-invariant. -/ |
| 63 | axiom sharpAllVertexCovers_count_iso : |
| 64 | ∀ {A B : Type} [FirstOrder.Language.graph.Structure A] [FirstOrder.Language.graph.Structure B], |
| 65 | (A ≃[FirstOrder.Language.graph] B) → Nat.card {C : A → Prop // GVertexCover A C} = Nat.card |
| 66 | {C : B → Prop // GVertexCover B C} |
| 67 | |
| 68 | /-- The value of counting all vertex covers is the number it counts. -/ |
| 69 | axiom sharpAllVertexCovers_eq : |
| 70 | ∀ (A : Type) [FirstOrder.Language.graph.Structure A], SharpAllVertexCovers A = Nat.card |
| 71 | {C : A → Prop // GVertexCover A C} |
| 72 | |
| 73 | end Lax859101.AllSetsValues |
| 74 |
Builds on
Lax366625.CountingClassesLax366625.CountingProblemsLax366625.CountingSatLax366625.WitnessCountingLax799700.SetFamilyLax859101.CountingAllSetsLax859101.CountingBipartiteLax859101.CountingDnfLax859101.CountingNaeSatLax859101.CountingRestrictedSatLax859101.OneCallReductionsLax859101.SubtractiveReductionsLax904597.ProblemsLax904597.Sat
Used by
none
From Mathlib
Discussion
Ask a question or add context. Endorsements and structured flags are kept in the review panel above.
0 comments