Talk:Satisfiability

From Wikipedia, the free encyclopedia
Jump to: navigation, search
WikiProject Mathematics (Rated Start-class, Low-priority)
WikiProject Mathematics
This article is within the scope of WikiProject Mathematics, a collaborative effort to improve the coverage of Mathematics on Wikipedia. If you would like to participate, please visit the project page, where you can join the discussion and see a list of open tasks.
Mathematics rating:
Start Class
Low Priority
 Field: Foundations, logic, and set theory
WikiProject Philosophy (Rated Stub-class, High-importance)
WikiProject icon This article is within the scope of WikiProject Philosophy, a collaborative effort to improve the coverage of content related to philosophy on Wikipedia. If you would like to support the project, please visit the project page, where you can get more details on how you can help, and where you can join the general discussion about philosophy content on Wikipedia.
Stub-Class article Stub  This article has been rated as Stub-Class on the project's quality scale.
 High  This article has been rated as High-importance on the project's importance scale.
 


Combine this Page with "Boolean satisfiability problem"[edit]

This page addresses the same topic, but in much less detail. Suggest merging this page into "Boolean satisfiability problem" by making it the introduction.

I would object strongly to that. This should be the main article, and boolean satisfiability should be a supporting page of this one, not vise versa. Satisfiability is a more general concept than just its boolean/propositional aspect.Greg Bard 21:31, 5 March 2010 (UTC)

Unfinished[edit]

This unfinished sentence was on the page. Anyone care to finish this?

 Validity of propositional formulae is immediately seen to be

It's currently commented out in the wikitext of the page Sam Douglas (talk) 04:38, 5 July 2009 (UTC)

My fault. I had started to write this sentence, and then decided to add the Reduction of validity to satisfiability section instead, which rendered what I was going to say redudnant. I've deleted it now. — Charles Stewart (talk) 09:45, 5 July 2009 (UTC)


... solved by Juan Manuel Dato. I had it for years, I hope someone review my code in Python 3.0 http://www.archive.org/details/TheSat3ProblemSolved You can understand the algorithm graphically in http://www.archive.org/details/ExampleInSpanishOfSatInP If you prove the code, the #P problem is not exactly solved, SAT yes. I do not know if there is a bug in the code, I suppose not (obviously). The formula is a list of functors of 3 literals, where negative means the opposite (-1 = ~X1) and 0 means literal always False. So the clausules can be constructed with 1, 2 or 3 literals. Prove it and say if it is right, there are too many technologies hidden yet. —Preceding unsigned comment added by 79.109.169.86 (talk) 18:19, 27 January 2011 (UTC) Here you are a riguorous constructive demonstration http://www.archive.org/details/ConnectionBetweenSat3AndPBetweenMatch-n —Preceding unsigned comment added by 79.109.169.15 (talk) 13:52, 20 March 2011 (UTC)

Requested move[edit]

The following discussion is an archived discussion of a requested move. Please do not modify it. Subsequent comments should be made in a new section on the talk page. No further edits should be made to this section.

The result of the move request was: page moved. Vegaswikian (talk) 00:23, 20 March 2010 (UTC)



Satisfiability and validitySatisfiability — I think this should be the main article titled "Satisfiability." Greg Bard 21:31, 5 March 2010 (UTC)

  • Support: Satisfiability seems to be the main subject. Validity has its own article with a slightly different meaning, but there is already a link here.--RDBury (talk) 23:57, 8 March 2010 (UTC)
The above discussion is preserved as an archive of a requested move. Please do not modify it. Subsequent comments should be made in a new section on this talk page. No further edits should be made to this section.

satisfiability *is not* a semi-decidable problem for FOL[edit]

A formula isn't valid iff its negation is satisfiable. If satisfiability were semi-decidable, then unvalidity would be also. Therefore, as validity and unvalidity would be semi-decidable, they would be decidable indeed, which is not possible by Church-Turing *theorem*.

Am I correct? Maybe I'm missing a subtle point. —Preceding unsigned comment added by Corovo (talkcontribs) 15:58, 11 August 2010 (UTC)

Your argument seems convincing to me, but I think this page states the opposite (in the last paragraph): http://www.coli.uni-saarland.de/projects/milca/courses/comsem/html/node189.html#sec_foinference.problems.3 I am not sure what to believe, and unfortunately I don't have time at the moment to properly examine the problem. FactorialG (talk) 13:32, 30 May 2012 (UTC)

I would say that they mean unsatisfiability, because they say "not satifiable" in the next sentence. Corovo is right. One can read it here on page 30: https://www.inf.tu-dresden.de/content/institutes/thi/algi/lehre/SS12/AL12/skript/script120413.pdf Martin 91.57.52.115 (talk) 10:45, 21 July 2012 (UTC)

You're right, that's a clear typo in the link the OP provided. — Carl (CBM · talk) 12:00, 21 July 2012 (UTC)

This description is misleading. There are methods for testing the satisfiability and unvalidity of some statements, just not all statements. This may fit the description of not semidecidable, but it gives the impression there's no semialgorithm for testing satisfiability outside the scope of validity, which is clearly false or we would have no SMT solvers or independence proofs. Also, link rot for the cite.

satisfiablity, theories, etc.[edit]

Argh, I think I just made a mess of this article by mentioning satisfiability modulo theories. The problem is that the article about interpretations states that interpretations are interpretations of theories, but this isn't really the right idea, because for boolean sat, we have interpretations but not theories in this sense, viz not theory (mathematical logic). This inconsistency needs to be resolved across the set of inter-related articles.linas (talk) 21:59, 13 June 2011 (UTC)

I strongly recommend my document; I cannot show to the world, but I have years studing the problem and NOW I got the solution: Maths are ambiguous, and we can create two TM; each philosophy can get us a different correct response to the question "NP=P?". And the question about if SAT is semidecidable can be read with an easy transformation (every boolean-fbf in SAT). I have to argue something more: the problem XOR-AND and OR-AND SAT are very different..., but those questions will give me hours and hours of explanations.

http://archive.org/details/TheUltimateDefinitionOfNp

I could be sure that there are more true and hidden demonstrations and false and famous in other hand than experts of the area. Please create a forum: my link show two easy demonstrations..., easier impossible. The demonstration NP is not P (in constructive philosophy) is got with diagonalization, and #P=P (in the infinitum philosophy) is very graphical with examples.

I got awful responses from editor in chief, saying nonsenses like "NP problem resolution is nothing with technology". Journals are DEAD and the Claymath Institute is a false institution too: so we cannot know if problems are solved or not.

Satisfiability[edit]

The language on satisfiability is, again, vague. In general even satisfiability of a theory in propositional logic is not decidable, and similarly the satisfiability of a variable-free equational theory in the language with only $0$, $1$, $+$, and $=$ is not decidable. This is because the decision process can only look at a finite part of the theory before making a decision, and there could be an inconsistency in the part that was not looked at before the decision procedure halts. Thus the decision process will either say that some satisfiable theories are unsatisfiable, or it will say that some unsatisfiable theories are satisfiable. The only thing that can be decidable, in principle, is satisfiability of a sentence or the satisfiability of a finite set of sentences. The latter is equivalent to the former in many contexts.

On to unification. Unification is simply a deductive system for first-order logic. It is not any stronger or weaker than any other deductive system (natural deduction, Hilbert-style, etc.). All of these allow us to enumerate the provable consequences of a theory. None of them can be used to solve the satisfiability question in for theories, only for sentences in some limited circumstances. — Carl (CBM · talk) 14:51, 16 June 2011 (UTC)

I've got to run, so can't do anything reasoned for about 12-24 hours. My quick take is that although satisfiability is a topic that is related to first-order logic, it is, in fact, used in many other places as well. So, for example: its important in term-rewriting, but in term re-writing, there are no predicates, no logical connectives, no quantifiers, no concept of true/false; yet satsifiability is closely defined, and algorithms to determine it are developed. So the trick for this article is to have a broad definition that fulfills the general need, and then break it down to that needed by the various different branches. linas (talk) 22:53, 16 June 2011 (UTC)
There is certainly the "=" predicate, and if you chase the definitions in "Term Rewriting and All That" they do refer to truth in the sense of model theory and first-order logic. For example, definitions 3.5.1 and 3.5.3 define the relation \approx_E in terms of the model-theoretic satisfaction relation \vDash, and the definition of "satisfiable" on page 58 is in terms of substitution (which is a model-theoretic concept) and the \approx_E relation. I don't have a copy of the book; I requested it from the library, so I should be able to look at it in more detail in a few days. So far I am limited to preview in google books. — Carl (CBM · talk) 00:45, 17 June 2011 (UTC)
Sorry; not to mis-lead. Of course, one can't do math with using equals signs at some point; and yes, chap 3 does review models in a more-or-less standard sense. As to whether "=" is a predicate or not is debatable. In an informal, vague sense, of course it is. However, in the formal sense, the language (or 'signature') of a term algebra does not contain predicate symbols, or atomic symbols or sentences or connectives. Informally, of course, these are casually used through-out the text to discuss results and to make claims; they just are not placed/used/defined as symbols of the objects under study. Nonetheless, one can still ask questions such as "if I have these two terms, arising from some signature S, under what cases are they equal?" which is a satisfiability problem, even though S is not (the signature of) a predicate logic, or any other kind of logic. linas (talk) 14:30, 17 June 2011 (UTC)
I think you are thinking of the special case of first-order logic in which the are no predicate symbols other than "=", and where people only look at atomic formulas, which are always of the form t_1 = t_2. This is how universal algebra is usually done, anyway: it is a special case of first-order logic, which is why model theory and universal algebra are so closely connected.
The definition of "satisfiability of an equation" in the setting of universal algebra seems to be exactly the same as the definition of satisfiability of the equation in first-order logic: is there a structure in which the two terms are equal? In the context of univseral algebra these structures are commonly called "groups", "rings", etc. but they are simply structures from the point of view of logic. — Carl (CBM · talk) 14:48, 17 June 2011 (UTC)
When you say "universal algebra is usually done as a special case of first-order logic", I will strongly argue that. I've got a book, title "Universal Algebra", Paul Cohen, and I'm pretty sure the words "first order logic" or "predicate logic" never appear anywhere in the book. At some level, yes, the one topic may be considered to be a subset of the other topic, but, in general, a narrower topic will have results and theorems that do not apply to the broader topic. When you say "seems to be the same as", I think its a mistake to try to be all fuzzy-wuzzy about definitions; I think the right approach is to give precise definitions suitable for the subfield, while having an informal intro/overview that does the hand-waving, pointing out that they're all the same, more or less.
Anyway, I propose creating a new subsection of this article, viz 'satisfiability in universal algebra' and moving the mention of unification etc. to that section. Thus it would closely resemble the first few pages of chapter 4 of the book 'term rewriting'. I believe that this should fix all your objections.linas (talk) 15:04, 17 June 2011 (UTC)
When Term rewriting says "class of algebras" that is exactly the same thing as when a person in first-order logic says "class of models", because an "algebra" in universal algebra is the same as a "model" or "structure" in first-order logic for the same signature. Thus, for example, Def. 3.2.1 in Term rewriting is exactly the definition of structure (mathematical logic) for a signature that has no predicate symbols other than =. If you are claiming there is a difference between satisfiability in universal algebra and satisfaction in first-order logic, can you say exactly what it is? So far I have been unable to find any difference. I will have a copy of Term rewriting here in a couple days that I can look at in more detail, I am a little limited by google books at the moment. — Carl (CBM · talk) 16:19, 17 June 2011 (UTC)

Are we arguing about something, or are we in violent agreement? I'm not claiming half of the things you seem to say I'm claiming, so I don't understand why this conversation is so argumentative. Honestly, I've never studied first-order logic, I do not possess any books that treat first-order logic as a subject of study; certainly Cohen's Universal algebra doesn't treat it as a topic, nor does the term-rewriting book, nor does Hodges' Model theory book. Yet all of these books touch on satisfiability and do so in a concrete fashion. If you believe that all of these different definitions of satisfiability are the same thing, that's fine. And you're almost surely right, and I think here we agree; at some informal level, I do understand that they're all the same. But the reality is that none of these authors felt compelled to define first-order logic before they could talk about satisfiability; the subject matter didn't call for it. Perhaps this article doesn't need to either; it may be a source of confusion to the student. Informally, we agree its all the same thing. Formally, I have no reference which states, in a formal fashion, that these varying definitions really are all the same thing. linas (talk) 02:06, 18 June 2011 (UTC)

You're claiming you have a model theory book by Hodges which, somehow, does not use first-order logic? The book by Hodges we cite (A Shorter Model Theory), and every other model theory book I have seen, uses the normal definition of a structure from first-order logic. This isn't "at some informal level": the definition of satisfaction in model theory is exactly the definition in first-order logic, which is the same as the definition in universal algebra. The definition of a structure (called an algebra in universal algebra) is exactly and formally the same in all these fields. This is discussed in detail on p. 58 of Term rewriting and all that where the authors carefully lay out exactly how what they are doing is a special case of validity and satisfiability from first-order logic.
My main concern with the article is that the text you added seems to be too inexact, to the point that it's hard to tell if it's even correct. It also seems to be missing context: the article is about satisfiability of formulas anad theories in general, so if you mean to limit things to a particular class of theories or formulas, the restriction has to be stated explicitly. Unification, for example, cannot be used to decide satisfiability in general (even our article on unification says this). — Carl (CBM · talk) 02:32, 18 June 2011 (UTC)
As to p 58 of that book, it says no such thing. I've made a number of suggestions in how to allay your concerns; you've rejected all of them. I've no desire to engage in an endless argument. If you think you can be constructive, please act that way. Otherwise, let us terminate this discussion, it does no good. linas (talk) 15:45, 18 June 2011 (UTC)
I'm trying to be constructive by figuring out exactly what the difference is between "satisfiability" in term rewriting and satisfiability as it is usually defined in first-order logic and model theory (if there is a difference). Until we work out exactly what the difference is in our own heads, I don't see how we can possibly make the article clear about it.
So I've been trying to use the same book you added as a reference to the article, and looking at the definitions there. But until I get an actual printed copy I am forced to use the google books version. Fortunately, it looks like the book as a sort of Rosetta stone on p. 58 that lays everything out. You could help me by just explaining what's going on.
If I am reading p. 58 correctly, the use of 'valid' is exactly the same in first-order logic and in that book, but that book uses 'satisfiable' to mean 'satisfiable in every nonempty model' rather than 'satisfiable in some nonempty model'. If that change is common in term rewriting, and is the only difference in terminology, it should take about one sentence to explain it in this article. Could you tell me if there is some other difference that I haven't noticed yet? — Carl (CBM · talk) 20:57, 18 June 2011 (UTC)

I don't think there is a difference between satifiability in universal algebra and satisfiability in first-order logic, and in fact the fundamentals of universal algebra are a subset of those of first-order logic. The only difference is that universal algebra uses slightly different terminology and then goes off in a different direction.

Although they historically did not always point it out in their publications, the connection is very well known to universal algebraists. You can ask User:Vaughan Pratt. (IIRC he thinks of himself primarily as a universal algebraist.) Or you can look in Chapter IX of the revised (1981) edition of Paul Cohen's Universal Algebra. Its title is Model theory and universal algebra, and it starts with Chang and Keisler's slogan "universal algebra + logic = model theory". Even the old edition had Chapter V, Relational structures and models, and Chapter VI, Axiomatic model classes. These three chapters are really about first-order model theory. Similarly, Grätzer's Universal Algebra used to end with Chapter 6 (Elements of model theory), Chapter 7 (Elementary properties of algebraic structures) and Chapter 8 (Free $\Sigma$-structures), all of which are about first-order model theory. (In the second (2008) edition there are new appendices which go in a different direction.)

What we need in this article is not a separate definition of satisfiability for universal algebra, but a brief explanation of how first-order satisfiability specialises to that important case. Hans Adler 00:42, 19 June 2011 (UTC)

PS: I believe the strange definition of satisfiability on p. 58 of Term Rewriting and All That makes sense if we adopt the following POV: We have a set E of Σ-identities, i.e. a variety. Contrary to what a first-order logician would expect, we are not interested in whether a given equation is satisfiable in some member of the variety – under this definition all equations would be satisfiable, since they are satisfied in the one-element Σ-algebra. Instead, we want to know whether the equation is satisfiable in the free E-algebra with countably many generators. Hans Adler 01:03, 19 June 2011 (UTC)
Sorry I lost my temper. The point I am trying to make is that one can define a workable version of satisfiability before one defines first-order logic, and, specifically, without having to explain what a quantifier is or how to combine them. By doing so, one can avoid a large variety of discussions pertaining to first-order logic, e.g. cardinality, Skolemization, and assorted other baggage. Avoiding this is useful as these can be intimidating to more inexperienced readers. I offer three pieces of evidence that this can be done: (1) of the roughly two-dozen freely-available SMT solvers, only two handle quantifiers. (2) Hodges 'a shorter model theory' defines satisfiability on page 12, the same page where atomic formula & atomic sentence are defined. He does not define first-order logic until page 26. As far as I can tell, Hodges never again discusses satisfiability after this point. (3) The book 'term re-writing', as you will see, once you get it, never defines first-order logic, or refers to it in any way. In fact, I'm pretty sure that book never even uses the there-exists symbol, or the for-all symbol. That book almost never uses any logical connectives either; leafing through the book, I was unable to find any use of a logical connective until page 267! The reason for this is that the book never defines atomic formulas, atomic sentences or predicates (although it does define a dozen or more different kinds of binary relations). Meanwhile, satisfiability, unification and termination occupy half the book, replete with all sorts of algorithms for computing the same. So, to conclude: one simply does not need to invoke first-order logic to define or explain satisifiability. What's more, one can present and discuss various relatively sophisticated algorithms that compute satisfiability, without having to make any appeals at all to first-order logic (or any kind of logic outside of the usual work-a-day computer programming language).
Meanwhile, I'll try to make small, infrequent, itty-bitty edits, as precise as seems warranted, if/when I get the urge to do so. linas (talk) 03:14, 21 June 2011 (UTC)
One more example of satisifiability without first-order-logic: Barendregt, "The Lambda Calculus, Its syntax and semantics" defines theories and models for lambda calculus in pages 75-125. There is a very brief mention of satisfiability on page 100. Obviously, the book never even gets close to discussing anything even vaguely related to logic, much less first-order logic. linas (talk) 03:37, 21 June 2011 (UTC)
Maybe we can agree that the article is currently not in a good state at all and that it would be a good idea to rewrite it so that it starts with the general, abstract definition (i.e. satisfiability is just an a priori arbitrary notion of a formula holding in some mathematical object – or something to that effect) and gives the most important examples starting with the easiest ones, which I believe are propositional logic and universal algebra. I will see what I can do later today. Hans Adler 08:22, 21 June 2011 (UTC)
Well, don't blame me; I didn't write this article. I tried to make some trite changes -- mention some of the typical catch-words of the business. Every time I did, Carl disliked them, edited them out, and called me out to have this very long argument. So far, I've spent maybe a minute or two editing, and hours arguing. I find this to be a waste of my time. I really, really dislike it. linas (talk) 13:31, 21 June 2011 (UTC)
Unfortunately, terminology and conventions in logic are about as inconsistent as it gets. In spite of some direct connections, logicians who work in computer science, those who work in electrical engineering and those who work in philosophy don't have much of a common language. Mathematical logicians are somewhere in between. Carl is familiar with (at least) much of the mathematics and philosophy side of things, and I guess that makes it very easy for him to see when an approach is not helpful at all to philosophers. My background is in mathematics and computer science, and I also try to learn about the engineering POV (which is underrepresented in Wikipedia). We must get this article right for everybody, because satisfiability matters for all of these groups. With your focus on one specific case you ended up saying some things that you certainly did not intend, such as implying that the satisfiability problem is always decidable. For first-order logic that's famously false, and a lot of our readers here are primarily interested in that case.
Except for such clear mistakes, I think Carl has only juggled your material around, not actually removed anything. That's just normal cooperative editing. Hans Adler 15:04, 21 June 2011 (UTC)

Sigh. I'm pretty sure I never added text that implied it was decidable! Hey! I'm not an idiot! BTW, please note what finite model theory has to say about Goedel and completeness! I also didn't realize that reading books on lambda calc, term rewriting, model theory, and papers on SMT, answer-set programming was "focusing on one case"; I thought that this provided fairly broad coverage of the topic. I work for a chip-design company; yes, the hardware verification tools people have a vast number of constraint satisfaction problems (timing, routing, etc.) These are all "satisfiability" problems, and there's already a small universe of WP pages for these topics: e.g. model checking, local consistency, etc. Some of those pages (I skimmed them recently) link back to this article, or the article on structure (mathematical logic), or to model theory article. Many do not: e.g. local consistency which has three different sections discussing satisfiability, none linking here. Note also discussion of satisfiability in complexity of constraint satisfaction where the theory of relational databases mentioned. (somewhat off-topic, but note that SQL has very rigorous satisfiability demands; keystores became very popular recently precisely because they dump this, and do not require consistency. There's a recent interesting article that points out that keystores and SQL are adjoint, in the sense of monad (category theory). I wouldn't be half surprised if there's some paper somewhere that points out that consistency (in general) and satisfiability (in general) are adjoint in the same sense. But again, the point is that essentially none of these discussions read on or use "first-order logic" as a touchstone definition for satisfiability. linas (talk) 03:33, 22 June 2011 (UTC)

The text that I edited in this edit was particularly at issue. There is no algorithmic process to determine the satisfiability of a theory except in very limited cases, which is what the text I added there explained. Again in this edit I corrected text that claimed that satisfiability is a decidable problem.
The very concept of a structure in model theory is tied to first-order logic, because model-theoretic structures are the semantic objects in that logic; the claim that model theory books don "read on or use" first-order logic is not sustainable. Moreover, the book Term rewriting and all that, which I am only focusing on because you added it to the article, directly explains how to read its definitions in first-order logic. Essentially every "satisfiability" problem I have seen described is either a special case of decidability of propositional logic (as in 3-SAT) or a special case of satisfiability in first-order logic (as in universal algebra). I have never, for example, seen an application that referred to satisfiability in second-order semantics. Maybe you know of some application of abstract "satisfiability" that is not actually a special case of either Boolean valuations (propositional logic) or structures in the sense of model theory (first-order logic)? — Carl (CBM · talk) 03:53, 22 June 2011 (UTC)
Indeed, it looks like I added some bad text. My excuse is this: I was interrupted multiple times while making these edits; interrupted mid-sentence, I must have lost my train of thought, and then failed to proof-read before hitting "save page". Haste makes waste. Sorry.
As to the world revolving around first-order logic, I thought I already built a strong, persuasive case here. Are you rejecting every point out-of-hand? I just pointed you at 5 or 6 examples that discuss satisfiability without getting into first-order logic; are these all invalid? I get the impression that you aren't actually thinking about what I wrote, or why I wrote it. There is a reason that I am saying the things I am saying, I would appreciate it if you attempted to understand it before you reject it with a wave of the hand.
Lets take a look at satisfiability in lambda calculus. Classic, untyped lambda calculus cannot be founded on set theory (due to cardinality), nor can it be merged with first-order logic (Church failed in the 1930's; more recently, its been observed that Frege's failures of the 1890's are because Frege's theory incorporated axioms that are more-or-less equivalent to lambda calculus. How do I know this? I read about it in the intro of a book). One cannot apply model theory to lambda calculus in general, but there is a certain subset of lambda calculus for which one can; this subset is the part that can be endowed with the Scott topology. To the best of my understanding, this part still cannot be unified with first-order logic; but perhaps I'm wrong. My overall sense is that it would be a pretty big deal if it were possible. So, if lambda calc can't be unified with FOL, then how might one define satisfiability in such a case? It can be done, it uses the more-or-less standard notation to do so, and the usual verbal baggage to go with it -- no real surprises. Just that lambda calc doesn't actually have any "there-exists" or "for-all" quantifiers -- lambda calc is not the same thing as FOL. One can define satisfiability without having to have FOL. linas (talk) 03:01, 23 June 2011 (UTC)
The examples you gave higher up seemed to me to be either explicitly about first-order logic, like model theory, or about special cases of it. One does not have to explicitly mention quantifiers to be in the realm of first-order semantics, which is just about first-order structures, which are the type of structures that are studied in model theory. I can't follow that claim that books on model theory don't "get into" first-order logic; and Term rewriting and all that explicitly "gets into" it.
The denotational semantics Scott developed for untyped lambda calculus was in terms of domain theory, and a "domain" in that sense is just a particular type of first-order structure (in particular, it's a type of lattice). Domain theory can be (and usually is) studied via set theory and model theory.
In any case, at least you see the edits I made to the page were not intended to remove all your material, only to attempt to improve language that I thought might be confusing or inaccurate. I preserved the mention of unification, for example, and other material on special cases of satisfiability. — Carl (CBM · talk) 11:44, 23 June 2011 (UTC)