How to use first-order logic with both constants and predicates?

74 Views Asked by At

I'm trying to create a first order logic statement, but I have constants in addition to predicates.

Predicates:

$Time(a)$, which states that a is a time;

$After(a,b)$, which states that $a$ is after $b$;

$Together(x,y,a)$ which states that $x$ and $y$ are together at time $a$

Constants:

$now$, $you$, and $I$.

Need to create statement: Before now, you and I used to be together, and after now, you and I will never be together.

Would this be something like: $¬Time(a) ∧ ¬Now → Together(x,y,a) ∧ Now → ¬Together(x,y,a)$

1

There are 1 best solutions below

0
On BEST ANSWER

Take it a piece at a time. We clearly need to be able to be able to say you and I are/were together at time $t$; that’s $\text{Together}(\text{you},\text{I},t)$. Now take the first half of the sentence:

Before now, you and I used to be together.

The most straightforward interpretation of the English is that at every time before now, you and I were together. In other words, if $t$ is a time, and $t$ is before now, you and I were together at time $t$. This isn’t too hard to translate into symbols:

$$\forall t\Big(\text{Time}(t)\land\text{After}(\text{now},t)\to\Big)\text{Together}(\text{you},\text{I},t)\;.$$

Very literally, that’s,

For all $t$, if $t$ is a time, and $\text{now}$ is after $t$, then you and I were together at time $t$,

which in English is a clumsy but understandable way to say that you and I were always together before now.

The second half of the sentence is

After now, you and I will never be together.

See if you can translate that part on your own; the basic structure is really quite similar to that of the first half.