[Math] the difference between syntactic and semantic completeness

logic

It is apparent to me what the difference between syntactic consistency and semantic consistency is.

A theory $T$ is syntactically consistent if there exists no formula $\phi$ in the language such that both $\phi$ and $\neg \phi$ are provable.

A theory $T$ is semantically consistent if it has a model. If $T$ has a model, there exists an interpretation where all formulas of $T$ are true.

However, I do not understand the difference between syntactic completeness and semantic completeness. My understanding of the two properties is:

A theory $T$ is syntactically complete if for every formula $\phi$ in the language of the theory, either $\phi$ or $\neg \phi$ is provable.

A theory $T$ is semantically complete if, in every interpretation, every true formula $\phi$ is provable.

I do not understand how syntactic completeness can be false while semantic completeness can be true at the same time. I understand that this is true (it's true in any first order theory that is subject to Gödel's incompleteness theorem), I just do not see how they are not always true at the same time.

Best Answer

Take $T$ to be predicate logic with equality. Any sentence that is true in every model of $T$ is provable (by Gödel's completeness theorem), so $T$ is semantically complete. Now take $\phi$ to be $\forall x\cdot \forall y\cdot x = y$. Neither $\phi$ nor $\lnot\phi$ can be provable, because $\phi$ is true in some models but not in others. So $T$ is not syntactically complete.

Related Question