Values of the decision versions and of #SelSAT
Lax175070.CountingValues · concepts/Lax175070/CountingValues.lean · lax-175070
No public endorsements yet.
Loading review…
Sign in with ORCIDNatural Language Statement
Lemma
The decision version of a counting problem by a property of numbers holds on a structure exactly when its count has the property. The number of models of an instance with a selected variable in which the selected variables have a given value is invariant under isomorphism, so it is the value of #SelSAT; SelMajSAT and SelEqSAT hold exactly when these counts compare as they ask.
Concept map
Evidence
Lean source view on GitHub
| 1 | import Lax904597.Problems |
| 2 | import Lax485149.Problems |
| 3 | import Lax485149.Complement |
| 4 | import Lax904597.Classes |
| 5 | import Lax904597.Sat |
| 6 | import Lax904597.Interpretations |
| 7 | import Lax904597.Machines |
| 8 | import Lax564036.Hierarchy |
| 9 | import Lax366625.CountingProblems |
| 10 | import Lax366625.CountingClasses |
| 11 | import Lax366625.WitnessCounting |
| 12 | import Lax366625.CountingSat |
| 13 | import Lax366625.CountingRuns |
| 14 | import Lax175070.CountDefinability |
| 15 | import Lax175070.SelectedSat |
| 16 | |
| 17 | /-! |
| 18 | --- |
| 19 | title: Values of the decision versions and of #SelSAT |
| 20 | type: lemma |
| 21 | --- |
| 22 | The decision version of a counting problem by a property of numbers holds on |
| 23 | a structure exactly when its count has the property. The number of models of |
| 24 | an instance with a selected variable in which the selected variables have a |
| 25 | given value is invariant under isomorphism, so it is the value of |
| 26 | #SelSAT; SelMajSAT and SelEqSAT hold exactly when these counts compare |
| 27 | as they ask. |
| 28 | -/ |
| 29 | |
| 30 | namespace Lax175070.CountingValues |
| 31 | |
| 32 | open FirstOrder FirstOrder.Language |
| 33 | open Lax904597.Problems Lax904597.Classes Lax904597.Sat Lax904597.Interpretations |
| 34 | Lax904597.Machines Lax564036.Hierarchy |
| 35 | open Lax366625.CountingProblems Lax366625.CountingClasses Lax366625.WitnessCounting |
| 36 | Lax366625.CountingSat |
| 37 | open Lax366625.CountingRuns Lax175070.CountDefinability Lax175070.SelectedSat Lax485149.Problems |
| 38 | open Lax485149.Complement |
| 39 | |
| 40 | /-- The decision version holds when the count has the property. -/ |
| 41 | axiom decide_iff : |
| 42 | ∀ {L : Language.{0, 0}} [L.IsRelational] (R : ℕ → Prop) (C : CountingProblem L) |
| 43 | (A : Type) [L.Structure A], decide R C A ↔ R (C A) |
| 44 | |
| 45 | /-- The number of models with the selected variables at `b` is isomorphism-invariant. -/ |
| 46 | axiom sharpSelSat_count_iso : |
| 47 | ∀ (b : Bool) {A B : Type} [satSel.Structure A] [satSel.Structure B], |
| 48 | (A ≃[satSel] B) → Nat.card {ν : A → Prop // SelModel A b ν} = Nat.card {ν : B → Prop // |
| 49 | SelModel B b ν} |
| 50 | |
| 51 | /-- The value of #SelSAT is the number it counts. -/ |
| 52 | axiom sharpSelSat_eq : |
| 53 | ∀ (b : Bool) (A : Type) [satSel.Structure A], |
| 54 | SharpSelSAT b A = Nat.card {ν : A → Prop // SelModel A b ν} |
| 55 | |
| 56 | /-- SelMajSAT compares the two counts. -/ |
| 57 | axiom selMajSat_iff : |
| 58 | ∀ (A : Type) [satSel.Structure A], SelMajSAT A ↔ SharpSelSAT false A < SharpSelSAT true A |
| 59 | |
| 60 | /-- SelEqSAT compares the two counts. -/ |
| 61 | axiom selEqSat_iff : |
| 62 | ∀ (A : Type) [satSel.Structure A], SelEqSAT A ↔ SharpSelSAT true A = SharpSelSAT false A |
| 63 | |
| 64 | end Lax175070.CountingValues |
| 65 |
Builds on
Lax175070.CountDefinabilityLax175070.SelectedSatLax366625.CountingClassesLax366625.CountingProblemsLax366625.CountingRunsLax366625.CountingSatLax366625.WitnessCountingLax485149.ComplementLax485149.ProblemsLax564036.HierarchyLax904597.ClassesLax904597.InterpretationsLax904597.MachinesLax904597.ProblemsLax904597.Sat
Used by
none
From Mathlib
none
Discussion
Ask a question or add context. Endorsements and structured flags are kept in the review panel above.
0 comments