While this submission is a draft, it cannot be used by other submissions.

The values of #Exact Cover, #Set Packing, #Set Cover, #Hitting Set

Lax280166.SetFamiliesValues · concepts/Lax280166/SetFamiliesValues.lean · lax-280166

proven

Loading review…

Sign in with ORCID

Community review

Flags

Each flag is tied to a public ORCID identity and explains why this concept may be incorrect.

No flags have been submitted.

    Community review

    Flag this concept

    State precisely what appears incorrect. This explanation will be public under your ORCID name.

    No source line selected.

    Natural Language Statement

    Lemma

    The number counted by each of #Exact Cover, #Set Packing, #Set Cover, #Hitting Set is invariant under isomorphism of instances, so the value of each problem on an instance is the number it counts.

    Concept map
    32 concepts
    100%
    Proven claimDefinitionThis conceptRelated conceptA → B: B builds on A
    Evidence

    This concept declares 8 statements. Each proof establishes one of them relative to its assumptions.

    1 sharpExactCover_count_iso proven

    3 sharpHittingSet_count_iso proven

    5 sharpSetCover_count_iso proven

    7 sharpSetPacking_count_iso proven

    Lean source view on GitHub

    1import Lax904597.Problems
    2import Lax904597.Sat
    3import Lax799700.CliqueFamily
    4import Lax799700.DominatingSet
    5import Lax799700.Feedback
    6import Lax799700.Hamilton
    7import Lax799700.Knapsack
    8import Lax799700.OneInSat
    9import Lax799700.SetFamily
    10import Lax799700.Steiner
    11import Lax799700.ThreeSat
    12import Lax799700.ZeroOneIP
    13import Lax366625.CountingProblems
    14import Lax366625.CountingClasses
    15import Lax366625.WitnessCounting
    16import Lax366625.CountingSat
    17import Lax280166.CountingSatVariants
    18import Lax280166.CountingCliques
    19import Lax280166.CountingDominatingSets
    20import Lax280166.CountingFeedbackSets
    21import Lax280166.CountingHamiltonCircuits
    22import Lax280166.CountingSetFamilies
    23import Lax280166.CountingKnapsacks
    24import Lax280166.CountingSteinerTrees
    25
    26/-!
    27---
    28title: The values of #Exact Cover, #Set Packing, #Set Cover, #Hitting Set
    29type: lemma
    30---
    31The number counted by each of #Exact Cover, #Set Packing, #Set Cover, #Hitting Set is invariant
    32 under isomorphism of
    33instances, so the value of each problem on an instance is the number it
    34counts.
    35-/
    36
    37namespace Lax280166.SetFamiliesValues
    38
    39open FirstOrder FirstOrder.Language
    40open Lax904597.Problems Lax904597.Sat
    41open Lax366625.CountingProblems Lax366625.CountingClasses Lax366625.WitnessCounting
    42 Lax366625.CountingSat
    43open Lax799700.ThreeSat Lax799700.SetFamily
    44open Lax280166.CountingSatVariants Lax280166.CountingCliques Lax280166.CountingDominatingSets
    45 Lax280166.CountingFeedbackSets Lax280166.CountingHamiltonCircuits Lax280166.CountingSetFamilies
    46 Lax280166.CountingKnapsacks Lax280166.CountingSteinerTrees
    47
    48/-- The number counted by #Exact Cover is isomorphism-invariant. -/
    49axiom sharpExactCover_count_iso :
    50 ∀ {A B : Type} [Lax799700.SetFamily.setSystem.Structure A]
    51 [Lax799700.SetFamily.setSystem.Structure B],
    52 (A ≃[Lax799700.SetFamily.setSystem] B) → Nat.card {G : A → Prop // ExactCoverBy (SSElem
    53 (A := A)) SSFam SSMem G} = Nat.card {G : B → Prop // ExactCoverBy (SSElem
    54 (A := B)) SSFam SSMem G}
    55
    56/-- The value of #Exact Cover is the number it counts. -/
    57axiom sharpExactCover_eq :
    58 ∀ (A : Type) [Lax799700.SetFamily.setSystem.Structure A], SharpExactCover A = Nat.card {G : A →
    59 Prop // ExactCoverBy (SSElem (A := A)) SSFam SSMem G}
    60
    61/-- The number counted by #Set Packing is isomorphism-invariant. -/
    62axiom sharpSetPacking_count_iso :
    63 ∀ {A B : Type} [Lax799700.SetFamily.setSystem.Structure A]
    64 [Lax799700.SetFamily.setSystem.Structure B],
    65 (A ≃[Lax799700.SetFamily.setSystem] B) → Nat.card {G : A → Prop // PackingOfSize A G} =
    66 Nat.card {G : B → Prop // PackingOfSize B G}
    67
    68/-- The value of #Set Packing is the number it counts. -/
    69axiom sharpSetPacking_eq :
    70 ∀ (A : Type) [Lax799700.SetFamily.setSystem.Structure A], SharpSetPacking A = Nat.card {G : A →
    71 Prop // PackingOfSize A G}
    72
    73/-- The number counted by #Set Cover is isomorphism-invariant. -/
    74axiom sharpSetCover_count_iso :
    75 ∀ {A B : Type} [Lax799700.SetFamily.setSystem.Structure A]
    76 [Lax799700.SetFamily.setSystem.Structure B],
    77 (A ≃[Lax799700.SetFamily.setSystem] B) → Nat.card {G : A → Prop // SetCoverOfSize A G} =
    78 Nat.card {G : B → Prop // SetCoverOfSize B G}
    79
    80/-- The value of #Set Cover is the number it counts. -/
    81axiom sharpSetCover_eq :
    82 ∀ (A : Type) [Lax799700.SetFamily.setSystem.Structure A], SharpSetCover A = Nat.card {G : A →
    83 Prop // SetCoverOfSize A G}
    84
    85/-- The number counted by #Hitting Set is isomorphism-invariant. -/
    86axiom sharpHittingSet_count_iso :
    87 ∀ {A B : Type} [Lax799700.SetFamily.setSystem.Structure A]
    88 [Lax799700.SetFamily.setSystem.Structure B],
    89 (A ≃[Lax799700.SetFamily.setSystem] B) → Nat.card {H : A → Prop // HittingSetOfSize A H} =
    90 Nat.card {H : B → Prop // HittingSetOfSize B H}
    91
    92/-- The value of #Hitting Set is the number it counts. -/
    93axiom sharpHittingSet_eq :
    94 ∀ (A : Type) [Lax799700.SetFamily.setSystem.Structure A], SharpHittingSet A = Nat.card {H : A →
    95 Prop // HittingSetOfSize A H}
    96
    97end Lax280166.SetFamiliesValues
    98
    Show ProofShow ProofShow ProofShow ProofShow ProofShow ProofShow ProofShow Proof

    Discussion

    Ask a question or add context. Endorsements and structured flags are kept in the review panel above.

    Loading discussion…