What is the difference between the implication/conditional truth function and the notion of logical entailment?

My naive understanding as a computer programmer is that the conditional is a function on two Boolean inputs, whereas entailment is some sort of more abstract idea about consequence.

Anything that's a thought or reference is deeply appreciated.

1 Answer 1


The conditional/implication (→), as you said, is a function on statements/propositions (sentences that can be true or false). Consequence/entailment (⊨) is a relation between sets of statements and a statement. From the classical bivalent point of view, the distinction can be characterized as follows:

Implication. (φ → ψ) is true iff (¬φ ∨ ψ) is true.

That's the classical view of →. To evaluate (φ → ψ), it will suffice to evaluate φ, check its value: if the value is false, short-circuit and output true as the value of the whole thing; if the value is true, continue and evaluate ψ and output the value of ψ as the value of the whole thing.

Entailment. (Γ ⊨ ψ) is true iff every interpretation that makes all φ ∈ Γ true, makes ψ true.

That's the classical view of ⊨. To evaluate (Γ ⊨ ψ), it will suffice to consider an arbitrary interpretation of the logical symbols of the underlying language that makes all statements in Γ true, and check whether that (arbitrary) interpretation also makes ψ true. In some logic textbooks they phrase that same thing by saying that: ψ is a logical consequence of Γ just in case it's impossible to make all of Γ true and ψ false.

The characterization of each of these relations depends on the underlying logic. The classical view of both is significantly different from the views of intuitionistic, paraconsistent, relevantist, and other logics. Those SEP articles will introduce you to those perspectives and talk about their motivations.

  • 1
    @bryanj The symbols are a little messed up, but yes, that's correct. Btw, sorry the SEP is down right now; this doesn't happen often. The articles are wonderful; you'll see when the server comes back up. Commented May 30, 2014 at 7:35
  • 1
    @bryanj There would be a convention of using P,Q,R,... for boolean-valued functions (aka 'predicates'). Then we would say that n-ary predicate P entails n-ary predicate Q iff all assignments a0,...,an-1 that make P true make Q true. Admittedly not precise, but in the abstract it's hard to do it more justice. If you have specific things you want to formalize in the future, we'll try to be more careful. Commented May 30, 2014 at 7:54
  • 1
    OK I got it for predicates with a countable number of arguments. I don't expect to need any more than that for a very long time. But if I did...
    – user
    Commented May 30, 2014 at 8:00
  • 1
    @bryanj You're welcome to use 'entail' to mean either the arrow or the turnstile, but make sure you're not confusing them. In this classical setting, the two are very similar, so I think while what you said was a bit confused, because I knew what you were trying to say, I made the right disambiguations. (The issue is not just the arrow/turnstile difference; there are also lots of conventions about what sentences are, what sentential matrices/forms are, what connectives are, and so on. In logic everything depends on the language, so we'll try to get clear on these issues when proving things.) Commented May 30, 2014 at 8:10
  • 3
    @bryanj - Hunan's explanation of the difference between the conditional connective (→) and the entailment relation (|=) is perfect. They are very very different... But, in classical logic, we have the following result : |= A → B iff A |= B, which builds a "strong" bridge between the two and (sometimes) can cause the confusion of thinking that they are the "same thing", which is not correct from a "conceptual" point of view, and also taking into account the existence of other "logics" which are not "truth-functional". Commented May 30, 2014 at 9:30

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .