[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Hackers and Painters and Lawyers

   Date: Fri, 16 May 2003 14:43:26 -0400
   From: "Peter J. Wasilko, Esq." <futurist@cloud9.net>
   Subject: Re: Hackers and Painters and Lawyers

   Date: Fri, 16 May 2003 14:42:52 -0400
   From: "Peter J. Wasilko, Esq." <futurist@cloud9.net>
   To: P T Withington <ptw@pobox.com>
   > >     All in all, legal drafting looks a lot like software reuse.
   > Unfortunately, via cut and paste, rather than standard libraries.
   Actually, Bar Associations set up committees to pool their members' legal 
   boilerplate and compile  libraries of association endorsed legal forms in the 
   file formats used by the most popular expert system document assembly shells. 
   Some of these distributions even include assembly rules. So there is more 
   large-scale sharing at work than you would get with cut and paste alone.
   To: Shriram Krishnamurthi <sk@cs.brown.edu>
   > But the thing that always makes these rules hard is the parts that
   > cross-cut the modules.  And if we believe the communities that study
   > AOP and separation of concerns, then no amount of refactoring is going
   > to eliminate these cross-cuts.
   The cross-cuts in a legal setting tend to be treated as orthagonal bodies
   of evidentiary, administrative, and procedureal law incorporated in
   legislation by reference.

I've thought for a while that there is a lot that lawyers
(and legislators) and computer scientists (and coders)
could learn from each other.  There is a lot more experience
in law than in science about organizing and cross-referencing
large bodies of code, maintaining it, resolving contradictions,
and so on.  But computer scientists have a lot of other tricks,
such as type checking, mathematical analysis, and so on.

When the Clinton impeachment mess was going on, when I read
in the news about the definition of "sexual relations" that
had been agreed upon by the lawyers, my mathematical training
led me to notice immediately that the definition was not
symmetric; that is, that under that definition it was possible
for A to have "sexual relations" with B while at the same time
B was not having "sexual relations" with A.  And Clinton spotted
that bug and tried to exploit it, which struck me as hackishly
brilliant (though politically stupid and morally arguable).

When a mathematician encounters the definition of a new relation,
he should always immediately ask:  (a) Is it symmetric?  (b) Is it
transitive?  (c) Is it reflexive?  (In the case of sexual relations,
I would say (a) yes, (b) it depends on whether you're concerned about
disease transmission, for example, and (c) let's not go there.)
(In the case of a binary operator, you ask whether it is commutative,
associative, has an identity, has idempotent values, and so on.)

Had the lawyers not settled on such a strange, asymmetric definition
to begin with, Clinton would not have tried to exploit that loophole
and the entire saga might have taken a very different turn.

I wonder what it would be like for legislatures to use test-driven
development?  Or, even simpler, if they decided that no law
would ever be released without some form of testing that is
widely advertised and could be publicly verified?

In the 2000 presidential election, one of the (many) problems
was that Florida law, if I understood it correctly, specified
that the Secretary of State (katherine Harris) should do
thus-and-such by thus-and-so date, without any specification
of what should happen or what should be done if that constraint
were not or could not be met.  Inadequate exception handling,
I would call it.  Would uniformly applied path testing have
revealed the potential problem ahead of time?