Change of Government


Introduction

Motivation describes the motivation for our project. There, we recognise that there are many different views of systems structure, expressed in many different languages, and that these different views need to be related together. However, our experiences, over fifty years, tells us that the languages get in the way of this "relating together". They make rigid distinctions between things that are not fundamentally different, e.g. programs and data, procedures and interfaces, types and instances, processes and transactions, etc. Worse still, the strong distinctions made by each language are inconsistent with the distinctions made by other languages. We therefore want to get away from these distinctions and start from an extremely simple semantics.

We have developed a very simple modelling style that matches our motivation and enables us to relate together the many interacting views of system structure that were referred to above. The primitive semantics of this modelling style has just one type of object - a system, and one type of relationship connecting such objects - a role of a system as a component in another system. We show that this modelling style can cope with the full range of mathematical and business problems, and can be related to other modelling styles.

Human Interface provides a human view of, and programming interface to, our modelling style. Here, in this document, we consider a non-mathematical example, the "business" processes that bring into force a change of government in Britain. In tackling this example, we make use of syntactic sugar introduced in Programming Manual, in particular the contextual bind operation =+.


Historical Background

The Privy Council is the government, as it existed in the reigns of Charles 2 and James 2. During the reigns of their three successors (clever but foreign William, dim or lazy queen Anne, and non English speaking, music-lover, George) the day-to-day government was delegated to a sub-committee (the cabinet) of the privy council, with one of its members (the prime minister) as chairman. The final step in this transformation came when George's son, with his imperfect English, acting as interpreter for his father, accidently insulted a member of the Privy Council and was challenged to a dual - his father decided to let someone else chair meetings of the government - thus, does democracy evolve in Britain.

In the half hour, between an old prime minister meeting the queen to resign and a new prime minister kissing hands, the government reverts to the form it had in the reigns of Charles 2 and James 2 (think what would happen if the new prime minister was blown up on the way to the palace then the only people with any legal power would be the queen and the members of her privy council).

Below we have thought of this change of government process as occurring in three similar, "kissing hands", ceremonies. In these three ceremonies the queen meets and swaps powers in turn with the old prime minister, the new prime minister, and the new leader of the opposition. It is a rather abstract view but gives us a nice business level example. In reality, the British constitution leaves the third step ill-defined and without a ceremony; when the new prime-minister kisses hands with the queen he relinquishes the role of leader of the opposition (with its legally defined powers); eventually, without the queen's involvement, this role is assumed by the new leader of the opposition; presumably, the queen and Privy Council would be involved if two people claimed this role.


Change of Government

The initial state, for the 2010 change of government, is given by the following system, with role identified by 'government' in the interpreter:-

      ≺government≻
      ≺
         ≺privy-council≻
         ≺
             ≺primeminister≻≺ ≺power≻≺pms-power≻ ≻,
             ≺leaderopposition≻≺ ≺power≻≺los-power≻ ≻,
             ≺privycouncillor≻≺ ≺power≻≺pcs-power≻ ≻
         ≻,
         ≺people≻
         ≺
             ≺brown≻≺ ≺power≻≺pms-power≻ ≻,
             ≺cameron≻≺ ≺power≻≺los-power≻ ≻,
             ≺harmon≻≺ ≺power≻≺pcs-power≻ ≻,
             ≺elizabeth2≻≺ ≺power≻≺pcs-power≻ ≻
          ≻,
          ≺complex-type≻≺changegovernmentc≻, ≺monarch≻≺government.people.elizabeth2≻, ≺oldpm≻≺government.people.brown≻,
                                                                               ≺newpm≻≺government.people.cameron≻, ≺lo≻≺government.people.harmon≻, ≺contn≻≺continuation≻
      ≻

with the dynamics of the change of government captured in the complex operation 'changegovernmentc'. This complex operation requires the expansion into:-

       ≺
          ≺complex-type≻≺changegovernmentc≻, ≺monarch≻≺mon≻, ≺oldpm≻≺old≻, ≺newpm≻≺new≻, ≺lo≻≺opp≻, ≺contn≻≺continuation≻,
          ≺type≻≺=c≻, ≺cont≻≺current.continue≻,
          ≺continue≻≺ ≺complex-type≻≺kissinghandsc≻, ≺monarch≻≺mon≻, ≺another≻≺old≻, ≺contn≻≺current.continue≻,
                                   ≺continue≻≺ ≺complex-type≻≺kissinghandsc≻, ≺monarch≻≺mon≻, ≺another≻≺new≻, ≺contn≻≺current.continue≻,
                                                            ≺continue≻≺ ≺complex-type≻≺kissinghandsc≻, ≺monarch≻≺mon≻, ≺another≻≺opp≻, ≺contn≻≺continuation.¿≻ ≻
      ≻ ≻ ≻

with the kissing-hands ceremony being captured by:-

       ≺
          ≺complex-type≻≺kissinghandsc≻, ≺monarch≻≺mon≻, ≺another≻≺anthr≻, ≺cont≻≺contin≻,
          ≺type≻≺=c≻, ≺2≻≺mon.power≻, ≺4≻≺power.¿≻, ≺cont≻≺current.continue≻,
          ≺continue≻≺ ≺type≻≺=c≻, ≺2≻≺anthr.power≻, ≺4≻≺mon.power≻, ≺cont≻≺current.continue≻,
                                   ≺continue≻≺ ≺type≻≺=c≻, ≺2≻≺power.¿≻, ≺4≻≺anthr.power≻, ≺cont≻≺contin≻ ≻
       ≻ ≻


More Reusable Change of Government

The model of the previous section does not reuse any code. We could provide more reusability. The initial state, for the 2010 change of government, could be given by the following system, with role identified by 'government' in the interpreter:-

      ≺government≻
      ≺
         ≺privy-council≻
         ≺
             ≺primeminister≻≺ ≺power≻≺pms-power≻ ≻,
             ≺leaderopposition≻≺ ≺power≻≺los-power≻ ≻,
             ≺privycouncillor≻≺ ≺power≻≺pcs-power≻ ≻
         ≻,
         ≺people≻
         ≺
             ≺elizabeth2≻≺eliz2 ≺power≻≺pcs-power≻ ≻,
             ≺brown≻≺brn ≺power≻≺pms-power≻ ≻,
             ≺cameron≻≺cam ≺power≻≺los-power≻ ≻,
             ≺harmon≻≺hrm ≺power≻≺pcs-power≻ ≻
          ≻,
         ≺change≻
         ≺
             ≺themonarch≻≺eliz2≻
             ≺theoldpm≻≺brn≻,
             ≺thenewpm≻≺cam≻,
             ≺thelo≻≺hrm≻,
             ≺ano≻≺HOLE≻
          ≻,
          ≺complex-type≻≺changegovernmentc≻, ≺monarch≻≺government.change.themonarch≻, ≺oldpm≻≺government.change.theoldpm≻,
                                                                               ≺newpm≻≺government.change.thenewpm≻, ≺lo≻≺government.change.thelo≻, ≺contn≻≺continuation≻
      ≻

with the dynamics of the change of government captured in the complex operation 'changegovernmentc'. This complex operation requires the expansion into:-

       ≺
          ≺complex-type≻≺changegovernmentc≻, ≺monarch≻≺mon≻, ≺oldpm≻≺old≻, ≺newpm≻≺new≻, ≺lo≻≺opp≻, ≺contn≻≺continuation≻,
          ≺type≻≺=c≻, ≺2≻≺old≻, ≺4≻≺government.change.ano≻, ≺cont≻≺current.continue≻,
          ≺continue≻≺ ≺complex-type≻≺kissinghandsc≻, ≺monarch≻≺mon≻, ≺another≻≺government.change.ano≻, ≺contn≻≺current.continue≻,
                                   ≺continue≻≺ ≺type≻≺=c≻, ≺2≻≺new≻, ≺4≻≺government.change.ano≻, ≺cont≻≺current.continue≻,
                                                            ≺continue≻≺ ≺complex-type≻≺kissinghandsc≻, ≺monarch≻≺mon≻, ≺another≻≺government.change.ano≻, ≺contn≻≺current.continue≻,
                                                                                    ≺continue≻≺ ≺type≻≺=c≻, ≺2≻≺lo≻, ≺4≻≺government.change.ano≻, ≺cont≻≺current.continue≻,
                                                                                                                ≺continue≻≺ ≺complex-type≻≺kissinghandsc≻, ≺monarch≻≺mon≻, ≺another≻≺government.change.ano≻, ≺contn≻≺continuation.¿≻ ≻
      ≻ ≻ ≻ ≻ ≻

This makes the kissing-hands code (shown above) reusable, because all three uses of it use the same parameters; this approach effectively mimics the procedure mechanism.


Realisation of Kissing Hands

The above only affects one sequence of bind operations within the graph interpreted by one interpreter. However, the component pms-power handed to Cameron by the kissing hands operation gives Cameron the ability to contribute to other sequences interpreted by other interpreters; for instance, one (or more) of these might be the ability (or abilities) to appoint members of the cabinet and give them instructions. More significantly, he has the power to change the rules for his own re-election. - with only the privy council able to gainsay him.