Suppose we have the sentence . We can then enter the context
and infer the sentence
. We can
regard
as analogous to
, and the operation of
entering
as analogous to assuming
in a system of natural deduction as invented by Gentzen and described in many
logic texts. Indeed a context is a generalization of a
collection of assumptions, but there are important differences. For
example, contexts contain linguistic assumptions as well as
declarative and a context may correspond to an infinite and only
partially known collection of assumptions. Moreover, because
relations among contexts are expressed as sentences in the language,
allows inferences within the language that could only be
done at the meta-level of the usual natural deduction systems.
There are various ways of handling the reasoning step of
entering a context. The way most analogous to the usual natural
deduction systems is to have an operation . Having done
this, one could then write any
for which one already had
. However, it seems more convenient in an interactive
theorem proving to use the style of Jussi Ketonen's EKL
interactive theorem prover [Ketonen and Weening, 1984]. In
the style of that system, if one had
, one could immediately
write
, and the system would keep track of the dependence on
.
To avoid ambiguity as to where an occurrence of
came from,
one might have to refer to a line number in the derivation. Having
obtained
by entering
and then inferring some sentence
, one
can leave
and get
. In natural deduction, this
would be called discharging the assumption
.
Human natural language risks ambiguity by not always specifying such assumptions, relying on the hearer or reader to guess what contexts makes sense. The hearer employs a principle of charity and chooses an interpretation that assumes the speaker is making sense. In AI usage we probably don't usually want computers to make assertions that depend on principles of charity for their interpretation.
Another application of entering a context has to do with
quantifiers. It involves a distinguished predicate
,
where
names an object. If we have
We could get similar effects by associating a domain (call it )
with each context
.
I'm presently doubtful that the reasoning we will want our programs to do on their own will correspond closely to using an interactive theorem prover. Therefore, it isn't clear whether the above ideas for implementing entering and leaving contexts will be what we want.
Sentences of the form can themselves be true in
contexts, e.g. we can have
. In this draft, we
will ignore the fact that if we want to stay in first order logic, we
should reify assertions and write something like
,
where
is a term rather than a wff. We plan to fix this up
in some way later, either by introducing terms like
or by
using a modified logic. Actually the same problem arises for
itself; the occurrence of
in
might have to be
syntactically distinct from the occurence of
standing by itself.