The domain axioms for WaterWorld in propositional logic.
We summarize the details of how we
choose to model WaterWorld boardsin propositional logic:
exactly what propositions we make up,and the formal domain axioms which capture the game's rules.
The board is fixed at 64,
named
,,
(with I and O omitted).
Propositions
There are a myriad of propositions for WaterWorld,
which can be grouped:
Whether or not a location contains a pirate:
,
,,
.
Whether or not a location contains no pirate:
,
,,
.
Yes, using the intended interpretation,
these are redundant with the previous ones.Some domain axioms below will formalize this.
Propositions indicating
the number of neighboring pirates, to a location:
,
,
,
,
,
,,
,
,
,
,,
,
.
These are all true/false propositions;there are no
explicit numbers in the logic.A domain axiom below will assert that whenever (say)
is true, then
and
are both false.
There is no proposition
since location
has only two neighbors.
Similarly, there is no proposition
.
We
could have chosen to
include those, but under the intended interpretationthey'd always be false.
These propositions describe the state of the underlying
boardthe modeland not our particular view of it. Our particular view will be reflected in which formulas
we'll accept as premises. So we'll accept
as a premise
only when
has been exposed and shows a 2.
The domain axioms
Axioms asserting that the neighbor counts are correct:
Count of 0:
A0:
H0:
Z0:
Count of 1:
A1:
H1:
Z1:
Count of 2:
A2:
H2:
There aren't any such axioms for locations
with only one neighbor.
Count of 3:
H3:
There aren't any such axioms for locations
with only one or two neighbors.
Axioms asserting that the propositions for counting neighbors
are consistent:
Axioms asserting that the safety propositions are consistent:
,
,
,
.
This set of axioms is not quite complete, as explored in
an exercise .
As mentioned, it is redundant to have both
and
as propositions.
Furthermore, having both allows us to express inconsistent states(ones that would contradict the safety axioms).
If implementing this in a program, you might use both as variables,but have a safety-check function to make sure
that a given board representation is consistent.Even better, you could implement WaterWorld so that these
propositions wouldn't be variables,but instead be calls to a lookup (accessor) functions.
These would examine the same internal state,to eliminate the chance of inconsistent data.
Using only true/false propositions;
without recourse to numbers makes these domain axioms unwieldy.Later, we'll see how
relations and
quantifiers help us model the game of WaterWorld more concisely.