Førsteordens predikatlogikk er i logikk et språk, med tilhørende semantikker og kalkyler, som beskriver objekter og deres relasjon til hverandre.
Et førsteordens språk er et tripel
⟨
C
,
F
,
R
⟩
{\displaystyle \langle C,F,{\mathcal {R}}\rangle }
, hvor
C
=
{
c
1
,
…
}
{\displaystyle C=\{c_{1},\ldots \}}
er en mengde konstantsymboler,
F
=
{
f
1
,
…
}
{\displaystyle F=\{f_{1},\ldots \}}
er en mengde funksjonssymboler,
og
R
=
{
R
1
,
…
}
{\displaystyle {\mathcal {R}}=\{R_{1},\ldots \}}
er en mengde relasjonssymboler.
Assosiert med hvert funksjon- og relasjonssymbol er ariteten, som er et naturlig tall som forteller hvor mange argumenter
symbolet forventer.
Disse symbolene kalles de ikke-logiske symbolene.
Gitt et språk
L
=
⟨
C
,
F
,
R
⟩
{\displaystyle {\mathcal {L}}=\langle C,F,{\mathcal {R}}\rangle }
så er
L
{\displaystyle {\mathcal {L}}}
-termer definert induktivt
som:
Alle variabler
x
{\displaystyle x}
er
L
{\displaystyle {\mathcal {L}}}
-termer.
Alle konstantsymboler
c
∈
C
{\displaystyle c\in C}
er
L
{\displaystyle {\mathcal {L}}}
-termer.
Hvis
f
∈
F
{\displaystyle f\in F}
er et funksjonssymbol med aritet
n
{\displaystyle n}
, og
t
1
{\displaystyle t_{1}}
til
t
n
{\displaystyle t_{n}}
er
L
{\displaystyle {\mathcal {L}}}
-termer, så er
f
(
t
1
,
…
,
f
n
)
{\displaystyle f(t_{1},\ldots ,f_{n})}
er
L
{\displaystyle {\mathcal {L}}}
-term.
Gitt et språk
L
{\displaystyle {\mathcal {L}}}
, så er mengden med
L
{\displaystyle {\mathcal {L}}}
-formler definert induktivt som:
⊤
{\displaystyle \top }
er en
L
{\displaystyle {\mathcal {L}}}
-formel. Les topp eller sant (eng: top ).
⊥
{\displaystyle \bot }
er en
L
{\displaystyle {\mathcal {L}}}
-formel. Les bunn eller usann (eng: bottom ).
Hvis
R
∈
R
{\displaystyle R\in {\mathcal {R}}}
er et relasjonssymbol med aritet
n
{\displaystyle n}
, og
t
1
{\displaystyle t_{1}}
til
t
n
{\displaystyle t_{n}}
er
L
{\displaystyle {\mathcal {L}}}
-termer, så er
R
(
t
1
,
…
,
t
n
)
{\displaystyle R(t_{1},\ldots ,t_{n})}
en
L
{\displaystyle {\mathcal {L}}}
-formel.
Hvis
A
{\displaystyle A}
og
B
{\displaystyle B}
er
L
{\displaystyle {\mathcal {L}}}
-formeler og
x
{\displaystyle x}
er en variabel, så er følgende
L
{\displaystyle {\mathcal {L}}}
-formler:
¬
A
{\displaystyle \neg A}
: negasjonen av
A
{\displaystyle A}
.
A
∧
B
{\displaystyle A\land B}
: konjunksjon. Les A og B .
A
∨
B
{\displaystyle A\lor B}
: disjunksjon. Les A eller B .
A
→
B
{\displaystyle A\to B}
: implikasjon. Les hvis A, så B eller A impliserer B . (Notasjonen
A
⊃
B
{\displaystyle A\supset B}
brukes også.)
∀
x
.
A
{\displaystyle \forall x.\,A}
: all-kvantor. Les "for alle x, så holder A. Legg merke til at x kan forekomme som en variabel i A.
∃
x
.
A
{\displaystyle \exists x.\,A}
: eksistens-kvantor. Les "det eksisterer en x, sånn at A holder". Igjen så kan x forekomme som en variabel i A.
Modellteori for førsteordens logikk
rediger
En standard måte å beskrive modeller for førsteordens logikk på er som følger.
En modell
M
{\displaystyle {\mathcal {M}}}
for et språk
L
=
⟨
C
,
F
,
R
⟩
{\displaystyle {\mathcal {L}}=\langle C,F,{\mathcal {R}}\rangle }
er en
ikke-tom mengde
D
{\displaystyle D}
, kalt domenet, sammen med en tolkning
(
.
)
M
{\displaystyle (.)^{\mathcal {M}}}
av alle symbolene i
M
{\displaystyle {\mathcal {M}}}
slik at:
c
M
∈
D
{\displaystyle c^{\mathcal {M}}\in D}
for alle konstansymboler
c
∈
C
{\displaystyle c\in C}
.
f
M
:
D
n
→
D
{\displaystyle f^{\mathcal {M}}:D^{n}\to D}
for alle funksjonssymboler
f
∈
F
{\displaystyle f\in F}
med aritet
n
{\displaystyle n}
.
R
M
⊂
D
n
{\displaystyle R^{\mathcal {M}}\subset D^{n}}
for alle relasjonssymboler
R
∈
R
{\displaystyle R\in {\mathcal {R}}}
med aritet
n
{\displaystyle n}
.
Det er altså en tolkning av alle de ikke-logiske symbolene inni domenet
D
{\displaystyle D}
.
Variabeltilordning og tolkning av termer
rediger
Før denne tolkningen kan løftes opp til alle termer, må en tolkning av variabler gis. En funksjon
δ
:
B
→
D
{\displaystyle \delta :\mathbb {B} \to D}
kalles en variabeltilordning. Gitt en variabeltilordning, så er det en unik funksjon som løfter tolkningen til alle termer:
[
x
]
δ
M
=
δ
(
x
)
{\displaystyle [x]_{\delta }^{\mathcal {M}}=\delta (x)}
.
[
c
]
δ
M
=
c
M
{\displaystyle [c]_{\delta }^{\mathcal {M}}=c^{\mathcal {M}}}
.
[
f
(
t
1
,
…
,
t
n
)
]
δ
M
=
f
M
(
[
t
1
]
δ
M
,
…
,
[
t
n
]
δ
M
)
{\displaystyle [f(t_{1},\ldots ,t_{n})]_{\delta }^{\mathcal {M}}=f^{\mathcal {M}}([t_{1}]_{\delta }^{\mathcal {M}},\ldots ,[t_{n}]_{\delta }^{\mathcal {M}})}
.
Det at en formel
A
{\displaystyle A}
er sann i en modell
M
{\displaystyle {\mathcal {M}}}
med en variabeltilordning
δ
{\displaystyle \delta }
skrives som
M
,
δ
⊨
A
{\displaystyle {\mathcal {M}},\delta \models A}
.
og er definert som følger:
M
,
δ
⊨
⊤
{\displaystyle {\mathcal {M}},\delta \models \top }
holder alltid.
M
,
δ
⊨
⊥
{\displaystyle {\mathcal {M}},\delta \models \bot }
holder aldri.
M
,
δ
⊨
R
(
t
1
,
…
,
t
n
)
{\displaystyle {\mathcal {M}},\delta \models R(t_{1},\ldots ,t_{n})}
holder hvis og bare hvis
⟨
[
t
1
]
δ
M
,
…
,
[
t
n
]
δ
M
⟩
∈
R
M
{\displaystyle \langle [t_{1}]_{\delta }^{\mathcal {M}},\ldots ,[t_{n}]_{\delta }^{\mathcal {M}}\rangle \in R^{\mathcal {M}}}
.
M
,
δ
⊨
¬
A
{\displaystyle {\mathcal {M}},\delta \models \neg A}
holder hvis og bare hvis
M
,
δ
⊨
A
{\displaystyle {\mathcal {M}},\delta \models A}
ikke holder.
M
,
δ
⊨
A
∧
B
{\displaystyle {\mathcal {M}},\delta \models A\land B}
holder hvis og bare hvis
M
,
δ
⊨
A
{\displaystyle {\mathcal {M}},\delta \models A}
holder og
M
,
δ
⊨
B
{\displaystyle {\mathcal {M}},\delta \models B}
holder.
M
,
δ
⊨
A
∨
B
{\displaystyle {\mathcal {M}},\delta \models A\lor B}
holder hvis og bare hvis
M
,
δ
⊨
A
{\displaystyle {\mathcal {M}},\delta \models A}
holder eller
M
,
δ
⊨
B
{\displaystyle {\mathcal {M}},\delta \models B}
holder.
M
,
δ
⊨
A
→
B
{\displaystyle {\mathcal {M}},\delta \models A\to B}
holder hvis og bare hvis: hvis
M
,
δ
⊨
A
{\displaystyle {\mathcal {M}},\delta \models A}
holder, så holder
M
,
δ
⊨
B
{\displaystyle {\mathcal {M}},\delta \models B}
.
M
,
δ
⊨
∀
x
.
A
{\displaystyle {\mathcal {M}},\delta \models \forall x.\,A}
holder hvis og bare hvis
M
,
δ
[
x
↦
d
]
⊨
A
{\displaystyle {\mathcal {M}},\delta [x\mapsto d]\models A}
holder for alle
d
∈
D
{\displaystyle d\in D}
.
M
,
δ
⊨
∃
x
.
A
{\displaystyle {\mathcal {M}},\delta \models \exists x.\,A}
holder hvis og bare hvis: det eksisterer en
d
∈
D
{\displaystyle d\in D}
slik at
M
,
δ
[
x
↦
d
]
⊨
A
{\displaystyle {\mathcal {M}},\delta [x\mapsto d]\models A}
holder.
Basert på dette sier vi at en modell
M
{\displaystyle {\mathcal {M}}}
oppfyller en formel
A
{\displaystyle A}
, notasjon
M
⊨
A
{\displaystyle {\mathcal {M}}\models A}
,
hvis
M
,
δ
⊨
A
{\displaystyle {\mathcal {M}},\delta \models A}
for alle variabel-tilordninger
δ
{\displaystyle \delta }
.
Hvis
Γ
{\displaystyle \Gamma }
er en mengde formler, så skriver vi
M
,
δ
⊨
Γ
{\displaystyle {\mathcal {M}},\delta \models \Gamma }
hvis
M
,
δ
⊨
A
{\displaystyle {\mathcal {M}},\delta \models A}
for alle
A
∈
Γ
{\displaystyle A\in \Gamma }
.
Videre, hvis
B
{\displaystyle B}
er en formel, så er
B
{\displaystyle B}
en logisk konsekvens av
Γ
{\displaystyle \Gamma }
, notasjon
Γ
⊨
A
{\displaystyle \Gamma \models A}
,
hvis for alle modeller
M
{\displaystyle {\mathcal {M}}}
og tilordninger
δ
{\displaystyle \delta }
, så impliserer
M
,
δ
⊨
Γ
{\displaystyle {\mathcal {M}},\delta \models \Gamma }
at
M
,
δ
⊨
B
{\displaystyle {\mathcal {M}},\delta \models B}
holder.
Et særtilfelle er når
Γ
=
∅
{\displaystyle \Gamma =\emptyset }
, hvor man kun skriver
⊨
B
{\displaystyle \models B}
i stede for
∅
⊨
B
{\displaystyle \emptyset \models B}
.