- #1
heman
- 361
- 0
Is logic & computation two sides of the same coin.?if yes,How?
-Job- seemed to be mainly speaking about complexity theory, but it's computability theory that has the close relation to formal logic.The theory of computation is the branch of computer science that deals with whether and how efficiently problems can be solved on a computer. The field is divided into two major branches: computability theory and complexity theory, but both branches deal with formal models of computation.
a AND b = 1 if a=b=1, 0 otherwise
NOT a = 0 if a is 1, 1 otherwise
a OR b = 0 if a=b=0, 1 otherwise
a XOR b = 0 if a=b=0 or a=b, 1 otherwise
0 = ...00000
1 = ...00001
2 = ...00010
3 = ...00011
4 = ...00100
...
001 AND 101 = 001
000 = AND
001 = OR
010 = NOT
011 = Addition
...
00011001001001000111100000100111
00011010111001000111100000100110
00011001001001000111100110001101
00011001001001000101110111010110
...
if <...> do <...> else do <...>
while <...> do <...>
...
Logic is the study of argument.I think logic is the secience to find out if somthing is ture or not using other data and comparing it to the current argument to detirme weather it is ture or not.fargoth said:it depends on the definition of logic, in my view logic is the ability to deduce facts from raw data.
you can use computation to deduce the facts, but you can't deduce all the facts from computation (e.g. the tiling problem).
Would you mind elaborating? I can't imagine what formal logic would be without truth. (Though meaningless comes first to mind.) Call the objects that are usually called 'truth' and 'falsehood' (or whatever 'truth'-values you have) whatever you wish; if you don't assign those objects to your statements, well, who cares what you can prove? You can prove anything -- proofs are just strings of symbols, as you said (and you get to make up the rules generating them).Hurkyl said:Formal logic isn't really about truth: it's about provability.
Nope, it lies. If Amazon's search works, true first appears on page 27 and truth on page 31.In one text I have checked out, Mathematical Logic (Ebbinghaus, Flum, and Thomas), the word "truth" doesn't appear until page 183 out of 289. (If I can believe the index) Furthermore, the word is only used in quotes, indicating that it's only speaking loosely. (the text quickly clarifies what it really meant to say)
Here are some excerpts from Mathematical Logic (Ebbinghaus, Flum, Thomas)honestrosewater said:Can you define validity, satisfaction, consistency, soundness, or completeness without the objects usually called truth-values?
Formal logic does have plenty of direct mathematical use -- it has rather strong connections to things like Universal Algebra, Nonstandard Analysis, and Real Algebraic Geometry.Would you mind elaborating? I can't imagine what formal logic would be without truth. (Though meaningless comes first to mind.) Call the objects that are usually called 'truth' and 'falsehood' (or whatever 'truth'-values you have) whatever you wish; if you don't assign those objects to your statements, well, who cares what you can prove? You can prove anything -- proofs are just strings of symbols, as you said (and you get to make up the rules generating them).
Okay, satisfaction is enough. (BTW, their 'extensional' is my 'truth-functional'.) The objects that I'm referring to would be assigned by what they call an assignment ([itex]\beta[/itex]). That's what I'm asking about: the maps from the formulas to the objects that let you define, for example, how the truth-value, or semantic entailment, of a compound formula depends on the truth-value, or semantic entailment, of its constituents. Where are the objects that allow you to state that? It seems they've relegated them to the preceding discussion and to your informal understanding. But when they say, for example, [itex]\mathfrak{J} \models \neg \varphi \mbox{ :iff not } \mathfrak{J} \models \varphi[/itex], they're referring to the set of truth-values {T, F} that they've just finished talking about. I don't know why they don't just put them directly into the definitons -- the truth-values aren't even necessarily part of the formal language (they are part of the metalanguage, of course). I think the only requirement is that the truth-values be distinct.Hurkyl said:Here are some excerpts from Mathematical Logic (Ebbinghaus, Flum, Thomas)
3.2 Definition of the Satisfaction Relation. For all interpretations [itex]\mathfrak{J} = (\mathfrak{A}, \beta)[/itex], we let
[itex]
\begin{array}{l @{\quad \mbox{:iff} \quad} l}
\mathfrak{J} \models t_1 \equiv t_2 & \mathfrak{J}(t_1) = \mathfrak{J}(t_2) \\
\mathfrak{J} \models Rt_1 \ldots t_n & R^{\mathfrak{A}}\mathfrak{J}(t_1) \ldots \mathfrak{J}(t_n) \mbox{\quad (i.e. $ R^\mathfrak{A}$ holds for $\mathfrak{J}(t_1), \ldots, \mathfrak{J}(t_n)$ )} \\
\mathfrak{J} \models \neg \varphi & \mbox{not } \mathfrak{J} \models \varphi \\
\mathfrak{J} \models (\varphi \wedge \psi) & \mathfrak{J} \models \varphi \mbox{ and } \mathfrak{J} \models \psi \\
\end{array}
[/itex]
(and so forth)
<snip>
(Though, in commenting on definition 3.2, the text does say "the reader should convince himself that [itex]\mathfrak{J} \models \varphi[/itex] if and only if [itex]\varphi[/itex] becomes a true statement under the interpretation [itex]\mathfrak{J}[/itex].")
Sure, the maps are part of the metalanguage. They are applied to the connectives in the formal, object language so that you can determine, for example, whether a formula you've proved is a tautology or not.The text also makes a big deal that the usual operations on truth values are not the same as the logical connectives in the formal language. As far as I can tell, it only talks about them in one section, and uses symbols such as [itex]\dot{\vee}[/itex] and [itex]\dot{\wedge}[/itex] to distinguish them.
Perhaps you don't see it because it's already been worked into the calculus.I say that logic isn't about truth because I never really see it used in anything I've read on formal logic.
Hm, I only mean to use truth and such as they are used in formal logic. I'm not talking about 'real world truth' or anything of that sort. I'm all for the cleanest divide possible between the object language and ...everything else. If a system can do without those (in classical logic) two distinct objects that are normally called truth-values and assigned to formulas, more power to them, as far as I'm concerned. I just don't see how it's possible.But as for what I think was the intent of your question, I think that I've been a formalist a long time -- I believe that mathematics makes no attempt to ascribe meaning to anything. That task is better left to other disciplines (such as physics, or even metamathematics)
Their [itex]\beta[/itex] isn't a truth-assignment: it's a map from the set of variables into the domain A defined by the underlying structure.honestrosewater said:Okay, satisfaction is enough. (BTW, their 'extensional' is my 'truth-functional'.) The objects that I'm referring to would be assigned by what they call an assignment ([itex]\beta[/itex]). That's what I'm asking about: the maps from the formulas to the objects that let you define, for example, how the truth-value, or semantic entailment, of a compound formula depends on the truth-value, or semantic entailment, of its constituents.
The above is the definition of [itex]\mathfrak{J} \models \varphi[/itex]: it defines it first for the atomic formulae, and then recursively for compound formulae.honestrosewater said:Is [itex]\mathfrak{J} \models \varphi[/itex] left undefined, or did I miss the definition?
No, I don't! Without some additional qualification, I have no idea what those two questions even mean!Do you think 'if I can prove it, is it true?' and 'if it's true, can I prove it?' are central questions in logic?
Is it true that for all formulas f, if |= f, then |- f, and if |- f, then |= f? Does the set of tautologies equal the set of theorems?Hurkyl said:No, I don't! Without some additional qualification, I have no idea what those two questions even mean!
Yep.Hurkyl said:(Assuming that |= P means that P is a consequence of the empty set of formulas)
The relationship between logic and computation is often described as two sides of the same coin. Logic is the study of reasoning and argumentation, while computation is the process of solving problems using algorithms. Both fields aim to solve problems and make decisions using precise and systematic methods.
Logic plays a crucial role in computation as it provides the foundation for creating algorithms and defining the rules and steps to solve a problem. In computer science, logic is used to design and analyze programming languages, create efficient algorithms, and ensure the correctness of computer programs.
Some philosophers argue that computation can be reduced to logic, meaning that any computational process can be described and explained using logical principles. However, others argue that computation involves more than just logic, as it also requires physical hardware and real-time processing.
The relationship between logic and computation has evolved significantly over time. In the early days of computing, logic was used to design and build computer systems. As computers became more advanced, logic was also used to develop programming languages and algorithms. Today, logic and computation continue to influence and shape each other, with advancements in one field often leading to new developments in the other.
Understanding the relationship between logic and computation has numerous benefits for society. It has led to the development of powerful computing systems, artificial intelligence, and automation, which have greatly improved our daily lives. It has also paved the way for advancements in fields such as medicine, science, and engineering, allowing us to solve complex problems and make more informed decisions.