\subsection{Manipulating the Database}

\gloss{add(+P)}

The fact or rule P is added to the database with support coming from
the user.  If the fact already exists, an additional entry will not be
made (unlike Prolog).  If the facts already exists with support from
the user, then a warning will be printed if $pfcWarnings$ is true.
Add/1 always succeeds.

\gloss{pfc(?P)}

The predicate $pfc/1$ is the proper way to access terms in the \pfc\
database.  \prolog{pfc(P)} succeeds if \prolog{P} is a term in the
current pfc database after invoking any backward chaining rules or is
provable by Prolog.

\gloss{rem(+P)}

The first fact (or rule) unifying with $P$ has its user support
removed.  $rem/1$ will fail if no there are no \pfc\ added facts or
rules in the database which match.  If removing the user support from
a fact leaves it unsupported, then it will be removed from the
database.

\gloss{rem2(+P}

The first fact (or rule) unifying with $P$ will be removed from the
database even if it has valid justifications.  $rem/1$ will fail if no
there are no \pfc\ added facts or rules in the database which match.
If removing the user support from the fact leaves it unsupported, then
it will be removed from the database.  If the fact still has valid
justifications, then a \pfc\ warning message will be printed and the
justifications removed.

\gloss{pfcReset}.

Resets the \pfc\ database by trying to retract all of the prolog
clauses which were added by calls to add or by the forward chaining
mechanism.

% \gloss{pfc\_save\\	pfc\_save(+Id)\\	pfc\_file\_save(+FileSpec)}
% \gloss{pfc\_restore\\	pfc\_restore(+Id)\\	pfc\_file\_restore(+FileSpec)}


\gloss{Term expansions}

\pfc\ defines term expansion procedures for the operators {\em =>},
{\em <=} and {\em <=>} so that you can have things like the following
in a file to be consulted
\example
foo(X) => bar(X).
=> foo(1).
\end{verbatim}\end{quote}

The result will be an expansion to:
\example
:- add((foo(X) => bar(X)).
:- add(foo(1)).
\end{verbatim}\end{quote}


% \gloss{pfcLoad(+File)}
% \gloss{pfcCompile(+File)}