[PromiseBook] / trunk / chap_notation.tex Repository: Repository Listing PromiseBook

View of /trunk/chap_notation.tex

Revision 36 - (download) (as text) (annotate)
Mon May 30 18:13:00 2011 UTC (23 months, 2 weeks ago) by mark
File size: 41842 byte(s)
Fix jan's suggestions about cfengine chapter and obligations
\chapter{Micropromises}\label{chap_notations}

Promises alone do not suggest a theory of everything going on in the
world, but they are remarkably ubiquitous.  To make more specific
progress with promises and the world in which they live, we need a
concrete formulation that abstracts away details non-essential to the
discussion, but retains significant expressive power.
We therefore turn to a model of promises that we shall call {\em
micropromises}, or simply $\mu$-promises.  For the remainder of the
book, we shall describe some basic nomenclature and conventions for

\section{Agents and ensembles}

Micropromises are given and received by entities called {\em agents},
which may be human, computer or completely inanimate. These are the
indivisible atomic units of the system.
In the role of {\em promisers}, they may promise behavioural
properties. In the role of {\em promisee} they may be the recipient
of a promise.

\begin{figure}[ht]
\begin{center}
\includegraphics[width=6cm]{figs/agents}
\caption{\small Agents might have internal structure (left), revealed
by differentiated promises, but that structure might be presented as
a single agent package (right). The atomicity of the agents is therefore
not as fundamental as the atomicity of the promises they make.\label{agents}}
\end{center}
\end{figure}

The internal workings of agents are always hidden and hence they are
not relevant to the promise, nor can be they be known. An agent is
mainly a convenient locator for promises. What is known about the
promises advertised by an agent might allow an external agent to
speculate about its internal structure however (see
fig. \ref{agents}).

If a single promise can be logically decomposed
into a number of more elementary promises, then it is possible that
those elementary promises in fact exist and could be given by different
internal parts of the agent that have not been revealed.
An agent is thus a black box interface for behavioural declarations.

We shall refer to a collection of agents as an {\em ensemble}.  The
list in table
\ref{not_ex} are all agents in the promise theoretic sense.

\begin{table}[ht]
\begin{center}
\begin{tabular}{l|l}
\hline
Agent & Promise body\\
\hline
Electron & Negative electric charge\\
Web server & Deliver html pages\\
Can of soup & Contains soup\\
Bus & Transport to location on front sign\\
Human & Obey the law of the land.\\
\hline
\end{tabular}
\vspace{0.2cm}
\caption{Some example promiser agents.\label{not_ex}}
\end{center}
\end{table}

Formally, we assume that agents implicitly assume their own survival
for the duration of the promises they make.

\section{Micropromise defined}

Consider a general set of $N$ agents $A_i$, where $i=1,\ldots,N$.  We
denote agents by upper-case  Roman letters, and shall often use nicknames
$a_s$ for promise-sender or giver, $a_r$ for promise receiver and $a_t$ for
third parties, to assist the discussion.

\begin{definition}[Micropromise]\label{def_micropromise}
A micropromise is an autonomous declaration of possible behaviour from
a {\em promiser} or promise giver, to one or more {\em promisees} or
recipients. These recipients have yet to verify the behaviour.

Each promise contains a promise body $b$ that explains the content of
the promise.

The {\em scope} of the promise is the set of agents who have knowledge
of the promise that has been made; this may or may not include the promisees.

We denote a promise from agent $a_s$ to an agent $a_r$, with body $b$
by:
\beq
a_s \promise{b} a_r
\eeq
\end{definition}

We consider micropromises to be autonomous declarations; in other
words, the making of a promise is not someting that can be imposed on
an agent by external forces\endnote{We have taken a leap in making
this definition of a promise, which might be considered too much to
swallow by our readers. Appendix \ref{appa} explains in more detail a
simple line of reasoning for making the choices implicit in this
definition.}. If agents are humans, we may consider them to be
vountarily made. This will turn out to be the most elementary point of
view, and therefore the most fundamental and useful model of promises,
although we shall qualify this below in section
\ref{not_kinds}.

We say that a promise refers to unverified behaviour, because one does
not promise something that is already known. Such a promise would be
redundant. Thus one might promise to pick up someone from the airport,
about an event in the future, or promise to have finished an
assignment in the past, but the key point is that the recipient of the
promise has yet to verify the outcome.

A promise is given typically to one or more individuals. This might
simply be oneself or it could be the entire world, but often it is
limited to a select few. The promise might nevertheless become known
by a larger audience, which we refer to as the {\em scope} of the
promise\endnote{Notice that the scope of the promise is not the scope
of the behaviour, but the extent of its publicity. The body of the promise
describes the extent to which it affects the world.}.

Finally, the content of the promise is referred to as the body of the promise,
by analogy with the body of a document, or the body of a contract. The
body explains the extent to which the making of the promise either
{\em will constrain} or {\em has constrained} the behaviour of the
agent making it.

\subsection{The default assumptions}

For the purpose of analysis, it is useful to have some default
assumptions about agent behaviour.  These default assumptions maintain
the guarantees of atomicity of $\mu$-promises.

The first of these is that $\mu$-promises are promises of the first kind,
i.e. agents can only make promises about their own behaviour, thus the
promiser is the entity affected by the promise. There might of course be
side-effects of making the promise that affect other agents with or
without their knowledge.

Another default assumption is to assume that
promises will be kept, if nothing else is stated.  This, of course, is
only a convention, but it helps to quell the immediate uncertainty
that some people feel that promises are not guarantees' and are
therefore somehow worthy of suspicion\endnote{Promises are indeed not
guarantees, but neither are obligations or laws or any other kind of
tool for managing uncertainty. Unless one can prove overwhelming force,
constraints on agent behaviour are not enforcable. We return to this issue
is chapter \ref{chap_force}.}.

\subsection{Body types and constraints}

The body of a promise describes its details, in the sense of the body of a
document or of a contract.

Each promise body $b$ contains
\begin{enumerate}
\item  A {\em type} $\tau(b)$.
\item An explicit constraint $\chi(b)$.
\end{enumerate}
The constraint might not obviously be a constraint. For instance, if you promise
to brush your teeth, you are really promising one course of action out of all the
many possible outcomes of your behaviour of that type. We would define the
promise type $\tau =$ brush teeth' with set of possible outcomes $o \in \{ will, will~not\}$.
Then the promise to brush your teeth is involves the constraint $\chi(o): o = will$.

Promise types distinguish the qualitative
differences between promises, and additional constraint attributes
distinguish the quantitative differences. For each promise body $b$,
there is another promise body $\neg b$ which represents the negation
of $b$. We shall assume that $\tau(\neg b)=\tau(b)$ and that $\neg\neg b=b$.
The negation of $b$ refers to the deliberate act of not performing
$b$, or what ever is the complementary action of type $\tau(b)$.
Thus we shall often write the promise body as a pair $b \sim (\tau(b),\chi(b))$.

\section{Scope and Knowledge about promises}\label{not_scope}

Agents possess knowledge of the
promises they make, since
promises are a documentation of intent. It therefore
inevitable that such knowledge might be passed on to other
agents, spreading the knowledge about a promise to others. Indeed,
this is exactly what we mean by scope (see section
\ref{concept_scope}).

\begin{definition}[Scope]
We denote the scope of a promise by a set of agents $\sigma$ written under
the promise arrow.
\beq
A_1 \scopepromise{b}{\{\sigma\}} A_2
\eeq
The default scope is the promiser plus the promisee:
\beq
A_1 \promise{b} A_2 \equiv A_1 \scopepromise{b}{\{A_1,A_2\}} A_2
\eeq

\end{definition}

Agents might even make new promises about other promises, by itself
and others.  We shall therefore have use of a standard notation for
talking about other promises. We shall use the notation $\pi_i$ ($i = 0,1,2,3,\ldots$) to label micropromises without any of their details
explicit. This therefore includes but conceals the promiser, a list of promisees,
and the body with all of its details.

Since knowledge of such a promise, by any agent, could itself be the
subject of a promise (e.g. I promise that $X$ told me about her
promise to be faithful to $Y$), there must be promise bodies that
contain the knowledge of other promises, so we shall need a standard
notation to represent this. It might be sufficient to write
$\pi_1,pi_2,\ldots$ etc.  for such knowledge

\begin{example}
A contract is a document
whose body contains a number of promise proposals between two
parties. A signature on that document is effectively a promise to {\em
use} and abide by these promise proposals.
\end{example}

What if we want an agent to communicate knowledge of some arbitrary
promise? We need a way to talk about one promise in another. To keep
matters clear, we shall not merely use the notation $\pi$ for
knowledge about promise $\pi$, but use the derived quantity $\psi(\cdot)$
to distinguish this. This is meant to denote a distinction between a
depiction of the promise and the real thing, just as there is a different
between a newspaper article about a promise and the promise itself.

\begin{definition}[Knowledge of promises]
The promise body for talking about a separate promise $\pi$ is denoted by
by the notation $\psi(\pi)$.

The has body type $\tau(\psi(\pi)) =$ promise description', and the
body constraint $\chi(\psi(\pi)): b(\psi(\pi)) = \pi$.  In other
words, the constraint is such that it forces the body of the promise
to simply be a verbatim description of the promise itself, like
packaging in an envelope.
\end{definition}
We use the notation $\psi(\pi)$ rather than simply $\pi$ to distinguish between a
promise that is to be acted upon, and a description of the promise that is
only meant to be known'. Formally these objects have different types', i.e.
a promise is not the same as a description of it, even though the promise description
must exist for an agent to know about it. Knowledge about promises is clearly
at the heart of the notion of promise {\em scope} (see section \ref{concept_scope}),
and also motivates a more general attempt at classifying promises.

\section{Context}

Promises are not made in a vacuum. The environment surrounding
promises is summarized by the list points in table
\ref{notpromise}. Similarly, the context surrounding verification of
promises kept might be classified in a similar way, see table
\ref{notassess}

\begin{table}[h]
\begin{center}
\begin{tabular}{ll}
\hline
Component & Description\\
\hline
Promise & What outcome we intend\\
Algorithm & How a promise is kept\\
Motive & Why a promise is made\\
Context & Where, when a promise is made (patterns)\\
\end{tabular}
\vspace{0.2cm}
\caption{The context of a promise\label{notpromise}}
\end{center}
\end{table}

\begin{table}[h]
\begin{center}
\begin{tabular}{ll}
\hline
Component & Description\\
\hline
Outcome & What was measured during the assessment?\\
Context & Where was the sample taken?\\
Algrithm & How was the sample taken?\\
Motive & Why \\
Expectation & What were we expecting to find?\\
\end{tabular}
\vspace{0.2cm}
\caption{The context of an assessment\label{notassess}}
\end{center}
\end{table}

\section{The promise lifecycle}\label{lifecycle}

The promise lifecycle refers to the various states through which a
promise passes from proposal\endnote{Promises can be postulated or
posited without actually being made.  Indeed, this notion is central
to all of contract law.  A contract is usually a bilateral bundle of
promise proposals between two parties, that is only made' when the
respective parties sign the contract (thereby promising to accept and
use these proposals).} to removal. We shall refer to a number of
states in this lifecycle, which will form a finite state machine. Let
us list these in a legend before describing the lifecycle itself.

\begin{center}
\begin{tabular}{|l|l|}
\hline
Promise State & Description\\
\hline
proposed & A promise statement has been written down but not yet made.\\
issued  & A promise has been published to everyone in its scope.\\
noticed & A published promise is noticed by an external agent.\\
unknown & The promise has been published, but its outcome is unknown.\\
kept & The promise is assessed to have been kept.\\
not kept & The promise is assessed to have been not-kept.\\
broken & The promise is assessed to have been broken.\\
withdrawn & The promise is withdrawn by the promiser.\\
expired & The promise has passed some expiry date.\\
invalidated & The original assumptions allowing the promise\\
& to be kept have been invalidated by something beyond\\
& the promiser's control.\\
end & The time at which a promise ceases to exist.\\
\hline
\end{tabular}
\end{center}

The time interval spanned from the issuance of the promise to the end of the
the promise.
\end{definition}

\begin{myrule}[Promise withdrawal requires notification]
The withdrawal of a promise by an agent requires the notification
of other agents in scope.
Note however that if an intention is withdrawn without its corresponding
promise, the promise becomes a deception.
\end{myrule}

\begin{myrule}[A promise ceases to exist when broken or invalidated]
Once a promise is broken or otherwise enters one of the end states
(invalidated, expired, etc), its lifecycle is ended, and
further intentions about the subject must be described by new
promises.
\end{myrule}

The lifecycle of  a promise may now be viewed from either the perspective of
the agent making the promise, or from the perspective of the
promisee, or in fact any another agent that is external but in scope.

\beq
Promiser: ~~~~&~~~~~~~~~~~~ proposed \rightarrow not~issued \rightarrow end& \nonumber\\
&\downarrow&\nonumber\\
&issued& \nonumber\\
&\downarrow&\nonumber\\
&(unknown+kept+not~kept)^*&\nonumber\\
&\downarrow&\nonumber\\
&broken+withdrawn+expired+invalidated&\nonumber\\
&\downarrow&\nonumber\\
&end&
\eeq
Here the $+$ sign denotes alternative choices.
The $*$ notation here means that one of the options in the parenthesis
may be repeated any number of times during the lifetime of the promise.
In other words, a promise's status might be re-assessed from kept to not-kept
and back again any number of times.
Note also that a promise that is never issued ends before its life begins.

From the perspective of the promisee, or other external agent in scope, we
have a similar lifecycle, except that the promise is first noticed when published
by the promiser:
\beq
Promisee: &noticed&\nonumber\\
&\downarrow&\nonumber\\
&(unknown+kept+not~kept)^*&\nonumber\\
&\downarrow&\nonumber\\
&broken+withdrawn+expired+invalidated&\nonumber\\
&\downarrow&\nonumber\\
&end&
\eeq

\section{Promises involving groups, anonymous and wildcard agents}

We can define notation for a promise from one set of nodes
to another set of nodes using set curly-braces:
\beq
\stackrel{b}{\{a_i\}\rightarrow \{a_j\}}
\eeq
i.e. the set of agents $\{a_i\}$ promises $b$ to another set $\{a_j\}$
of agents.  Some caution is required in interpreting this notation,
since the agents are autonomous, because we do not know, in advance,
whether the promiser'-nodes will keep the same promise to the
promisees', unless they have agreed to do so (see proposition
(\ref{th1})).

We can now suppose what happens when refering to third-party agents in
the body of a promise.  In some circumstances, this can apparently
lead to contradictions. As a general rule, it seems to be in the
interest of clarity to avoid this where possible.

The general promise notation above is designed to avoid the problem of
referring to other agents in the body of a promse, but to make some
promises we need to talk about third parties.
Let us denote:
\begin{itemize}
\item Unspecified agents $\odot$''
\item Anonymous agents $?$''.
\end{itemize}
Ensembles of these can be denoted with braces, e.g. $\{\odot\}$ would
be an ensemble of unspecified agents.

We can write
\beq
\anon( \{ A \}_1) \promise{b} \anon( \{ A\}_2 )
\eeq
to mean one anonymous agent from the ensemble $\{A\}_1$ makes a promise to another anonymous agent from
the ensemble $\{ A\}_2$.

Examples:

\begin{enumerate}
\item $(?) \promise{b} (\odot)$ ~~: someone promises (anonymously) that $b$ will happen to someone.
For example, a death threat.

${\rm BinLaden}[\odot] \promise{\rm attack} {\rm Bush}[\odot]$: BinLaden promises Bush that one of his operatives will attack someone.

${\rm BinLaden}[?] \promise{\rm attack} {\rm Bush}[\odot]$: BinLaden promises Bush that an anonymous individual will attack someone.

\item Let $T$ be a set of trusted parties, then
\beq
{\rm Parent}[\odot(\{ T\})] \promise{\rm collect-from-school} {\rm Child}
\eeq
means, a parent promises its child that one of the trusted set will collect the child from school.

\item Let $T$ be a set of trusted parties, then
\beq
{\rm Child}[?] \promise{\rm\neg U(collect-from-school)} {\rm Parent}
\eeq
The child promises its parent that it will not accept lifts from strangers.

\beq
{\rm Child}[\odot(-\{ T\})] \promise{\rm\neg U(collect-from-school)} {\rm Parent}
\eeq
The child promises its parent that it will not accept lifts from someone who is not
in the list of authorized minders..

\end{enumerate}

\section{Special promises}

\subsection{Exact and inexact promises}

\begin{definition}[Exact and inexact promises]
A promise is exact if it allows no residual degrees of freedom, else it is inexact.
\end{definition}
A promise $a_1\promise{b} a_2$ is inexact if the constraint $\chi(b)$ has
residual degrees of freedom. i.e. if it is not a complete and
unambiguous behavioural specification.

For example $q=5$ is an exact
specification, while $1 < q < 5$ is inexact. The same principle applies
to the possible outcome of a promise, however the actual outcome is
naturally exact in each measurement.

\subsection{Superfluous promises}

Several kinds of promise body are useless.
A case of this is clearly provided by empty promise.
\begin{definition}[Empty promise]
An empty promise is one whose promise body contains no type or
constraint of any kind.
\end{definition}
Empty promises are assumed to be kept.
Note that an empty promise is not the same as making a promise that something
else should be empty, or that something should be zero, since both those cases
make a constraint on the content of the something'.

Another class of promises is about things that are inevitable.
\begin{definition}[Promise bodies that are necessarily kept]
Let $K = \langle\tau,\kappa\rangle$ be the collection of promise
bodies $b$ that are necessarily kept. $K$ is indexed by type, just as
promises are.
\beq
b \in K \Rightarrow  \langle\tau,\chi\rangle \in \langle\tau,\kappa\rangle
\eeq
\end{definition}

\subsection{$\pm$ classes of promises}

We have already described how promise bodies may be classified into
distinct types that represent the different subjects and issues about
which one might make promises. Even without knowing these types, we
can make a broad classification of promises into two major classes
that follow from the directed nature of the promise graph.

On a graph, promises are represented as incoming or outgoing arrows,
pointing from promiser to promisee. It follows from the autonomy of
agents in a system, that for every promise to {\em give} something
from $A_1$ to $A_2$, there is a possible counter-promise to {\em
accept} or {\em receive}, which points in the opposite direction. Such
pairs of promises form the basis of {\em negotiations}, and a pair of
promises back-to-back are said to form a {\em binding}.

We shall denote these promises with a $\pm$ signs, as in table \ref{promiseclasses}.
\begin{table}
\begin{center}
\begin{tabular}{cl}
+ & A promise of the form $A_1 \promise{+b} A_2$ is an offer to give \\
- & A promise of the form $A_2 \promise{-b} A_1$ is an acceptance to receive \\
\end{tabular}
\caption{The dual promise classes to give and receive.\label{promiseclasses}}
\end{center}
\end{table}
If an agent offers $b_1$ and another agent accepts $b_2$, the possible overlap
$b_1 \intersect b_2$ is called the effective action of the promise (see section \ref{effaction}).

The significance of these two classes is fundamental and reveals
a basic duality of viewpoints when formulating collective behaviour
in terms of promises (see section \ref{not_duality}), not unlike the way that positive and negative
charges lead to crucial insights about electricity.

Merely labelling a promise body $-b$ is ambiguous, so we shall take it
as given that nothing more than acquiring of information is implied by
such a promise.  A promise with body $-b$ is a specification of what
behaviour will be received'' or not blocked by the agent.

\subsection{Promises to use}\label{usepromise}

The fact that an agent promises to receive, or not block a service,
(e.g. collect the post from the postbox), does not imply that it will
act on the content, or use it for any purpose. We therfore choose to
emphasize the promise to use the promise of a service (e.g. open and
read the letters from the postbox).

Although the use-promise is an outgrowth of a receive promise, it is
debateable whether a use promise should be classified as a $-$
promise. However, a promise to use has a necessary pre-requisite
to receive, so it is natural to either omit the $-$ part ($U(b)$), or shorten
the notation to ($-U(b)$), (see table \ref{notsummary}).
\beq
A_1 \promise{S} A_2 ~~~{\rm or}~~~ A_1 \promise{+S} A_2\nonumber\\
A_2 \promise{U(S)} A_1 ~~~{\rm or}~~~ A_2 \promise{-S} A_1
\eeq

\subsection{Coordination promises}

In addition to these two fundamental types, it is possible to define
other promise patterns with special meanings, such as coordination
which we explain below.

\begin{itemize}
\item $C(\pi)$ a promise to coordinate with another agent
\item $\pm\psi(\pi)$ a promise to reveal or heed knowledge about a promise $\pi$
\end{itemize}

Don't confuse the body describing the communicatio of a promise with the
promise itself, as these are two different kinds of object.

\subsection{Lies and deceptions}

From the basic definition \ref{concept_deception}, we can begin to
formalize the notion of a lie or deception.  A lie, or deception is a
promise made about something the agent knows it cannot accomplish, or
that it has no intention of keeping.
\begin{itemize}
\item These are promises not respecting the default assumption, since
default promises must be kept.

\item Only the agent making the lie is capable of detecting it in general.

\item A liar could try to avoid being caught by saying I promise
X if I can'', but ....this is simply a superfluous promise, equivalent to an empty
promise, since the conditional is left dangling. It is an evasion.
\end{itemize}

A set-formulaic way of representing a deception might be the following.
A deception is asserting a promise that it does not intend to keep.
i.e. an agent $A_1$ promises something $b$ that is not necessarily kept to $A_2$, while
telling a possibly third agent $C$ that it will promise something that
is both not $b$ and which will be kept.
\beq
A_1 &\promise{b \not\in K}& A_2\\
A_2 &\promise{b' \in (\neg b \cap K)}& A_3
\eeq
where $A_3\not = A_2$, i.e. $A_2$ does not hear the promise to not do $b$.
e.g.

\begin{table}[ht]
\begin{center}
\begin{tabular}{c|l}
\hline
\hline
Symbol & Interpretation\\
\hline
$a \promise{+b} a'$ & Promise from $a$ to $a'$ with body $b$\\
$a' \promise{-b} a$ & Promise to accept $b$\\
$v_a(a \promise{b} a')$ & The value of promise to $a$\\
$v_{a'}(a \promise{b} a')$ & The value of promise to $a'$\\
\hline
\end{tabular}
\bigskip
\caption{Summary of simplified promise notation\label{notsummary}}
\end{center}
\end{table}

\subsection{Compatible and incompatible promises}

Exclusive promises are those which cannot physically be realized at
the same time.  This does not mean that incompatible promises cannot
be made, it means that they are meaningless and could lead to problems
for the agent.

\begin{definition}[Incompatible promises $\#$]
When two promises originating from an agent are incompatible,
they cannot be realized physically at the same time. We write
\beq
A_1 \promise{ b_1} A_2 ~\#~
A_1 \promise{ b_2} A_3
\eeq
If $A_2 = A_3$, we may omit the agents and write $b_1 \# b_2$.
\end{definition}
It would probably be unwise for an agent to trust another agent that
made simultaneous, incompatible promises. Of course this is a policy
decision for each individual agent to make.

Breaking a promise is not the same as not keeping a promise. It is
an explicit contradiction. Again, confidence in an agent's promise-keeping
ability is reduced when it makes contradictory promises.

\begin{definition}[Promise conflict]
Two or more promises to an agent are in conflict if at least one promise is
contradicted by another.  We define a conflict as the promising
of exclusive promises
\beq
A_1 \promise{ b_1} A_2, ~ A_1 \promise{ b_2} A_2~ {\rm with}~  b_1 \# b_2
\eeq
\end{definition}
Clearly promising $b$ and $\neg b$ would be excluded.

\subsection{Idempotence in repetition of promises}
What if we repeat a promise to pay 100 euros to someone;  have we kept
our promise if we pay 100 or 200 euros?
\begin{axiom}[Separate events have separate types]
Each new labelled promise that is fulfilled by the same type of
action, must be labelled by a formally different type promise.
\end{axiom}
Certain promise types are therefore related, or we can think of them
as being parameterized.
For example, the different payments above have different types, otherwise we
lose track of total value.  e.g.  $\tau_1$ is payment 1, $\tau_2$ is
payment 2.

\begin{myrule}[Idempotence of promises]\label{idemp}
The promise combination operator is {\em idempotent}, so repeating
the same promise does not change anything:
\beq
\frac{A_1 \promise{b} A_2 , A_1 \promise{b} A_2}{A_1 \promise{b} A_2} .
\eeq
\end{myrule}
Or in simpler notation:
\beq
\pi(b)\cdot\pi(b) = \pi(b).\label{idempp}
\eeq
and if
\beq
\pi^n(b) \equiv \pi(b)\cdot\pi(b)\cdot\ldots\pi(b),
\eeq
then by implication
\beq
\pi^n(b) \rightarrow \pi(b).\label{idemppn}
\eeq
meaning that the repetition of the same promise $n$ times
is the same as a single promise. However, the belief in the
outcome of the promise might be strengthened by the repetition of the
promise, so we may write the notation:
\beq
\beta(\pi^n(b)) = \alpha(n) \beta(\pi(b)),\label{amplify}
\eeq
meaning that belief in the outcome is amplified in the repetition of
the promise by some factor $\alpha(n) \ge 1$.

\section{Promises to keep promises}

Consider the implications of making promises about promises. Let us define
\beq
A_1 \promise{b(\pi)} A_2\label{cnp1}
\eeq
to mean a promise $\pi$ to keep the conditions of the body $b(\pi)$,
and let
\beq
\pi': A_1 \promise{\pi} A_2 =  A_1 \promise{ A_1 \promise{b(\pi)} A_2} A_2,\label{cnp2}
\eeq
mean a promise to keep the promise $\pi$. A promise to keep a promise
might or might not be as strong as a direct promise. This does not
affect the details of expected outcome, only belief in the likelihood
of the outcome. Thus we cannot say that (\ref{cnp1}) and (\ref{cnp2})
are the same, but it is reasonable to say that they are equivalent up
to a discounting factor $\delta \le 1$ that affects the belief in the
outcome. We may write the notation:
\beq
\beta(\pi') = \beta(\pi(\pi(b))) = \delta \beta(\pi(b))
\eeq
and if
\beq
\pi^{(n)}(b) \equiv \pi(\pi(\ldots\pi(b))),
\eeq
then the possible outcomes are the same, so this is equilavent to a
different promise with the same intent
\beq
\pi^{(n)}(b) \rightarrow \pi'(b).
\eeq
however it is somewhat weaker. So we have
\beq
\beta(\pi^{(n)}(b)) = \delta(n) \beta(\pi(b))
\eeq
meaning that belief in a promise to keep a promise is weaker by a factor $\delta$
than a direct promise. This result may be contrasted with the idempotence
or repeated invocation of promises in (\ref{idempp}).

\section{Exclusive or incompatible promises}

Exclusive promises are those which cannot both be kept if the lifetimes of the promises
overlap.
This does not mean that incompatible promises cannot be made, it means that they are
meaningless and could lead to problems for the agent.
Consider a promise
\beq
A_1 \promise{b} A_2
\eeq
meaning a promise from $A_1$ of the body $b$ to $A_2$. We can use a
functional approach to extract information from the body, e.g. $\tau(b)$
means the promise type.

\begin{definition}{Incompatible promises $\#$.}
When two promises originating from an agent are incompatible,
they cannot be realized physically at the same time. We write
\beq
A_1 \promise{b_1} A_2 ~\#~
A_1 \promise{b_2} A_3
\eeq
If $A_1 = A_3$, we may omit the agents and write $b_1 \# b_2$.
\end{definition}

\begin{definition}[Broken promises]
There are two essential ways in which a promise can be broken:
\begin{enumerate}
\item The agent takes an action that is incompatible with the terms of the promise.
\item The agent makes another promise that is incompatible with the terms of the promise.
\beq
\left.
\begin{array}{c}
A_1 \promise{b_1} A_2\nonumber\\
A_1 \promise{b_2} A_2
\end{array}
\right\}  b_1 \# b_2
\eeq
\end{enumerate}
Note that the second case includes the case where an agent consciously or unconsciously
exceeds a boundary or limitation that is expressed in the promise body, e.g. exceeds
a deadline in time, or steps over a boundary in space.

A promise broken is stronger than a promise not kept, as it implies an intended
action by the agent. An intentional omission to act can also break a promise.

\end{definition}
It is normally understood that a promise is broken by a later promse, but it
is clearly unimportant that we exclude one point of simultaneity in time, at which
one might simply say that two promises were inconsistent.

As we learn to combine promises from many agents, it can emerge from
the logic that combinations of promises between multiple agents could
lead to a promise being broken between two agents. This does not
enlarge the definition, it only means that certain contellations of
promises can lead the same agent to make and implicit or explicit
promise that contradicts another that was freely given.

\begin{myrule}[Parallel promises must have different types]
Two parallel promises are compatible if
\beq
\left.
\begin{array}{c}
A_1 \promise{b_1} A_2\nonumber\\
A_1 \promise{b_2} A_2
\end{array}
\right\} ~~ \tau(b_1) \not= \tau(b_2) \iff \neg(b_1 ~\# ~b_2)
\eeq
i.e. two compatible promises can be made in parallel if and only if they are
not of the same type.
\end{myrule}

\subsection{Promise refinement}

Sometimes the idea of a broken promise is too strong. We can allow the
presence of multiple promises as long as the order in which promises
override one another is defined. In fact we only need to know which of
the agents has primacy'' with respect to promises of a certain type
$\tau(b)$.

\begin{definition}[Promise refinement]
Let $b$ and $b^*$ be any two promises of type $t = \tau(b) = \tau(b^*)$.
We can then say that these promises of the same type
\beq
A_1 &\promise{b^*}& A_2\nonumber\\
A_1 &\promise{b}& A_2\nonumber
\ldots
\eeq
are not broken iff $b^* \subseteq b$ and promise $b^*$ has primacy''
(denoted by the asterisk).  Only one promise of type $\tau(b)$ from
any promising agent can have primacy.
\end{definition}
In other words, a more restrictive promise does not contradict a more
general promise as long as it has primacy.

The concept of promise multiple promises is somewhat undesirable since
it only complicates the logic of consistency. We believe it should
only be used in exceptional circumstances when designing
policies. However it will prove to be necessary in order to model the
concept of overriding authority.

We need to signify this with a special notation? We could use a *
on the primal promise?

\section{Assessment}\label{not_assess}

How can an agent assess whether or not the promise has been kept?  Is
this even possible?  In the general case, this could involve
sophisticated ideas, as {\em knowing} is a complex subject.

Eventually we would aim to build a theory of observation or
measurement, as this will allow us to embed promise theory into more
familiar theories of the natural world, with all of the practical
benefits of empiricism and engineering. We return to that issue in
chapter \ref{chap_measure}. However, in the absence of that theory of
measurement, the simplest option is to treat this issue as a semantic
primitive. Thus, for now, we make assessment a black box operation.

\subsection{Kept and not-kept}

Assuming that the promise in fact has meaningful content, one could
move to the issue of assessing whether or not it has been kept.
However, at this stage, this issue is too big to confront in a
systematic and comprehensive way, so we shall temporarily side-step
the issue pending a longer discussion in chapter \ref{chap_measure},
by making this issue a semantic primitive, i.e. we do not define
this in terms of other notions.

\begin{definition}[Kept promises]
In a subset of histories, a promise made in that
history has been kept'. In all others it hasn't.
\end{definition}

We now want a notation for saying that a promise has been kept.
We can refer to the promise as a triplet $\langle A_1,b,A_2\rangle$
or as $A_1\promise{b} A_2$, so we write either $K(A_1,b,A_2)$ or
\beq
K\left( A_1 \promise{b} A_2\right).
\eeq
To include the history, we want to say that $H$ satisfies' the
keeping of the promise:
\beq
H &\models& K(A_1,b,A_2)\nonumber\\
{\rm or} ~~ H &\models& K\left( A_1 \promise{b} A_2\right).
\eeq
Mark finds this notation unfamiliar and would tend to write something
like
\beq
K_H\left( A_1 \promise{b} A_2\right),
\eeq
meaning $K_H(\cdot)$ is the kept within history $H$' function.

\subsection{Minimal histories}

Let $\pi = \langle A_1, b, A_2 \rangle$ be a promise.
\begin{definition}[Positive promise]
A promise $\pi$ is called positive iff, for all $H,H'$
\beq
H' \ge H \Rightarrow \left(
H \models K(\pi) \Rightarrow H' \models K(\pi)
\right)
\eeq
i.e. if a promise to make something happen
has been kept within a certain history $H$,
then it has still been kept within a larger history $H'$.
\end{definition}
The keeping of a positive promise {\em persists} with time.
There is therefore a notion of a minimal history in which a promise
will be kept.

A promise not to do something is a negative promise.
\begin{definition}[Negative promise]
A promise $\pi$ is called negative iff, for all $H,H'$
\beq
H' \ge H \Rightarrow \left(
H' \models K(\neg\pi) \Rightarrow H \models K(\neg\pi)
\right)
\eeq
i.e. if a promise to make something not happen
has not been realized by a certain elapsed time, then it was not
realized before that time either.
\end{definition}

\section{Classification of kinds of promises}\label{not_kinds}

The notion of a micropromise described above embodies what we consider
to be the most useful notion of a promise, but it is not obviously the most general
case. We have chosen our preferred definition (\ref{def_micropromise}) to uphold
certain principles, like local autonomy of the agents, which will be
central to the formation of a consistent theory, but we would be
remiss to ignore aspects of promises that violate these lines.

In this section we would like to classify four kinds of promise
and show that all of these can be views in terms of the fundamental
micropromises described above.
As it turns out, the concept of knowledge
about promises provides a further clue as to how promises might be
classified. Below we describe four kinds of promises, but conclude that
only a single type of promise is needed to explain all behaviour, if we
assume the autonomy of the agents. In particular, this shows that promises
of the first kind are an elementary and even fundamental kind of object.

The generic form of these is:

\beq
A[B] \promise{b} C[D]
\eeq
where $A$ is the promiser, $C$ is a promisee or intended recipient of the
communication, $B$ is the agent responsible for keeping he promise,
and $D$ is the party affected by the outcome.

\subsubsection{Promises of the first kind}

The simplest form of a promise is the one we have used up to this point.
We write it:
\beq
\pi: S \promise{b} R
\eeq
where $\pi$ is its name, and the triplet $\langle S,b,R\rangle$
represent the sender agent $S$, the promise body $b$, and the
recipient agent $R$.

It is assumed that this is a local and autonomously made promise. It is
equivalent to a promise of the fourth kind, described by the notation:
\beq
\pi: S[S] \promise{b} R[R].
\eeq
i.e. $S$ promises $b$ to $R$.

\subsubsection{Promises of the second kind}

A promise of the second kind allows obligation:
\beq
\pi: S[T] \promise{b} R
\eeq
i.e. $S$ promises $R$ that it will oblige $T$ to act as if it had
promised $b$ to $R$. If $T$ is autonomous, this is forbidden and has
no influence on $T$.

Note that, in this description, we do not distinguish between obliging
and forcing. This is a subtley yet to be resolved. Ultimately, the
notion of autonomous intention would have to be sacrified in the
presence of overwhelming force.

\subsubsection{Promises of the third kind}

A promise of the third kind is autonomously given but allows indirection.
\beq
\pi: S \promise{b}R[T]
\eeq
i.e. $S$ promises to $R$ that $S$ will do $b$ for $T$.  Promises of
the third kind hold a special significance for transmission of
knowledge and promise {\em scope} (see section \ref{not_scope}).

Consider a promise by $S$ to $R$ about a promise with body $b$ to a third agent $T$.
We could write this in two ways. We use the notation $\Psi(b)$ for a promise
body that describes the knowledge about promises bodies of type $b$. So we could
write this as a promise of the third kind directly:
\beq
\pi_3: S \promise{b}R[T]
\eeq
which would furninsh $R$ with complete information about $b$ and its recipient
$T$. But we can also write this as a promise of the first kind
about the knowledge $\psi(\cdot)$ of the original promise:
\beq
\pi_1&:& S \promise{b}[T]\\
\pi_2&:& S +\promise{\pi_1}R
\eeq
Now, since $\pi_1$ contains the full description of the promise (which may also be written
as a triplet $\pi_1=\langle A,b,T\rangle$), the
same information has been conveyed to another agent. This is a promise about a promise.
We clearly cannot exclude the names of agents from the promise body in
general, and this indicates that .

\subsubsection{Promises of the fourth and most general kind}

A promise of the fourth kind is the most generic form:
\beq
\pi: S[T] \promise{b} D[U]\label{fthk}
\eeq
i.e. $S$ promises $D$ that $T$ will act as if it had promised $b$ to
$U$.  Note that, in this case $S,T$ cannot be considered an autonomous
agent, for if $T$ had been autonomous, this would be forbidden as $S$
would have no influence of $T$.  However, once again, we can express
the intention here using purely voluntary cooperation, using promises
of the first kind -- this time, it involves a promise about a promise:
\beq
\pi_1&:& S \promise{\pi_3} D\\
\pi_2&:& S \promise{\pi_4} D\\
\pi_3&:& T \promise{U(b)} S,\\
\pi_4&:& T \promise{b} U,\label{fthkprf}
\eeq
i.e. $S$ promises $D$ that it knows of a promise $\pi_3$ (which has
body $U(b)$) made from $T$ to $S$ to acquire information about body
$b$. $S$ knows this information according to
eqn. \ref{fthk}. Moreover, $S$ knows of another promise $\pi_4$ made by
$T$ to $U$ that it intends to use this knowledge of $b$ to make a
promise itself with this body to $U$. This completes the construction of
a replacement for the promise statement \ref{fthk} by promises of the first kind.

\subsection{Elementarity of promises of the first kind}\label{elementary}

From the preceding list, it appears as though we can construct
facsimiles of all of the promise kinds, using only promises of the
first kind. This means that we can always re-express obligations in
terms of promises of the first kind. This motivates the study of these
elementary promises in some depth.

Whether or not this is desirable can be discussed, but regardless of
what one thinks of the description, the utility of such a device would
be considerable. Assuming that no agent can wield irresistable force
in all matters, even the expression of an obligation cannot lead to
any certainty of outcome in the matter of the body $b$. It offers a
uniquely pragmatic point of view then to frame the problem in a
language that is open to consider its own limitations\endnote{Note
that in Quantum Mechanics, there are no forces, only expected
outcomes, so this would not be the first time something so audacious
\begin{theorem}[Projection theorem for promises of the $n$-th kind]
Let $\pi^{(n)}$ be a promise of the $n$-th kind, and $a_1,a_2,a_3,a_4$
always possible to substitute for $\pi^{(n)}$ a finite number of promises
The proof for $n=4$ is construction explicitly in (\ref{fthkprf}).