# Re: SUPPORT FOR DECLARATIVE TRANSITION CONSTRAINTS

From: Brian <brian_at_selzer-software.com>
Date: Sun, 26 Sep 2010 07:27:18 -0700 (PDT)

On Sep 26, 5:16 am, Erwin <e.sm..._at_myonline.be> wrote:
> On 25 sep, 22:41, Brian <br..._at_selzer-software.com> wrote:
>
>
>
>
>
>
>
> > The employee named paul c fills the position named toilet scrubber.
>
> > Let's look at the information conveyed by this statement:
> > 1. there is an employee named 'paul c.'
> > 2. there is a position named 'toilet scrubber.'
> > 3. the named employee fills the named position.
>
> > Now, suppose that paul c's position changes from toilet scrubber to
> > floor sweeper.
>
> > Assuming that no other proposition references an employee named paul c
> > or a position named toilet scrubber, doesn't the denial of
>
> > (a) The employee named paul c fills the position named toilet
> > scrubber.
>
> > also deny that there is an employee named paul c and that there is a
> > position named toilet scrubber?
>
> LOFL.
>
> Who again was it that should go back to school and take a course in
> logic ?
>
> EXISTS employee : employee(name) = 'paul c' && employee(position) =
> 'toilet scrubber'  does indeed imply EXISTS employee : employee(name)
> = 'paul c' && EXISTS employee : employee(position) = 'toilet
> scrubber'.  But note that the former and the latter are not
> equivalent, since the former conveys the extra information that the
> two properties apply to the very same person.
>
> NOT EXISTS employee : employee(name) = 'paul c' && employee(position)
> = 'toilet scrubber' ===
> FORALL employee : NOT(employee(name) = 'paul c' && employee(position)
> = 'toilet scrubber') ===
> FORALL employee : employee(name) <> 'paul c'  OR  employee(position)
> <> 'toilet scrubber')
>
> The denial of "(a) The employee named paul c fills the position named
> toilet scrubber." implies merely that if an employee is named paul c,
> then he is not a toilet scrubber, and also that if an employee is a
> toilet scrubber, then he is not named paul c.
>
> So the answer to your question "doesn't the denial of ... also
> imply ..." is, "No, doesn't.".- Hide quoted text -
>
> - Show quoted text

It is not the case that the employee named paul c fills the position named toilet scrubber.

it cannot be proven that there is in fact an employee named paul c, or that there is in fact a position named toilet scrubber. All that can be proven is that if there is indeed an employee named paul c and a position named toilet scrubber, that that employee doesn't fill that position. Since it cannot be proven that there is an employee named paul c or a position named toilet scrubber, and since no other proposition references an employee named paul c or a position named toilet scrubber, one must conclude that there is no employee named paul c and there is no position named toilet scrubber.

In the context of databases, if the tuple that represents the proposition,

The employee named paul c fills the position named toilet scrubber.

is the only place where "the employee named paul c" is referenced in the database, then under the domain closure assumption, DELETEing that tuple not only denies the propsition that it represents, but also denies the proposition "there is an employee named paul c." The domain closure assumption states that the only objects that exist are those that are represented in the database. If "the employee named paul c" is not represented in the database, then there is no employee named paul c. Received on Sun Sep 26 2010 - 16:27:18 CEST

Original text of this message