# What's the difference among the logical relations :=, =, and ≡?

I understand that ≡ is logical equivalence, "iff". '=' is a symbol for numerical equivalence. And ':=' is an identity claim. I often only see '=' and ':=' used with variables and names, while ≡ only appears with predicates. I'm not sure if this is just from my limited exposure to logic or an actual convention. What's the big difference if we were to say 'a=b' vs 'a≡b'?. Or, for that matter, 'Px:=Qy'?

• Can you give an example of := in usage? I like others, have seen := used in programming languages, but I have not seen bare logic. I'd love to see an example of it used in a document describing logic; I'd love to see the precursors to its use in programming. For me, := has always been "assign a value/define" in programming only, = is "equal to" and ≡ is "same as" for situations where the word "equal" is not quite right. I love symbology, so if there's a usage of := I've missed, I'd love to research it! Dec 25, 2014 at 17:31
• @CortAmmon - you can see it in Dirk van Dalen, Logic and Structure (5th ed - 2013), page 58. Dec 26, 2014 at 12:02

There is no strict universally accepted convention.

In mathematical logic, is logical equivalence, as you said, and it is a connective between proposition (in propositional calculus) or formulae (in predicate calculus).

Example :

(p → q) ≡ (¬p ∨ q).

Usually, = stands for equality and it is a binary relation between "objects", like numbers in arithmetic.

Example :

∀x (x+0 = x).

Finally, := is derived from programming languages, and is used (less often then the two above) as an "assignment" function : "let x be ...".

Example :

ψ := (x = y), stand for : let the formula ψ be (x = y).

Note : except for programming languages, := is not usually a symbol of the (object) language, but of the meta-language, while the two above are usually symbols of the language.

But we have to use = also in meta-language contexts, e.g. to express the identity relation between expressions; we can avoid confusion according to the context, but in some "pedantic" cases we introduce a different identity symbol for the meta-language, like .

• I've seen ≡ used for defining a variable, just like the same way we would use :=, in many books on mathematics... Dec 26, 2014 at 9:50
• Rather confusingly, some texts use ≡ for logical equivalence but many, particularly older ones, use it for material equivalence. That is a usage that goes all the way back to Principia Mathematica. Best just not to use it. I would suggest using ⊨⫤ or ⫤ ⊨for logical equivalence and ↔ or ⊂⊃ for material equivalence. Sep 6, 2023 at 17:04

It depends of context. But, usually

• := is to define a objects from anothers. Usually one define variables from values, x:=7, and maps, f(x):=x+1. Many programming languages use = to do that, but Pascal language uses := to assign values.
• = is to compare two objects and ensure they have the same "identity". For instance, some programming languages use "==" to do that: a==b is true if previously we defined a:=2 and b:=2.
• ≡ have two interpretation. In logic it usually means "propositional equivalence", it a little subtlety; for instance, the existencial quantifier is "defined" \$∃x P(x)≡¬∀ x P(x)\$. Shortly, if a≡b you can put b where you see a, and vice versa.

Also, in algebra ≡ is the congrunce operator; for instance, a ≡ b mod n means a-b is multiple of n.