[Bug 1680] [FS] editorial: 4.12.5 Constructor Functions

http://www.w3.org/Bugs/Public/show_bug.cgi?id=1680


jmdyck@ibiblio.org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|RESOLVED                    |REOPENED
         Resolution|FIXED                       |




------- Comment #6 from jmdyck@ibiblio.org  2006-09-13 01:51 -------
(In reply to comment #5)
> Implemented the inference rule with all the 4 suggested fixes, plus the
> corresponding change to the normalization of function calls.

For the latter change, you missed the "not(...)" in premise 2.

However, I've just realized that (even with the "not()") that premise won't
work, because QName2 and AtomicTypeDerivation are unconstrained, so there's
always bindings for them (in fact, infinitely many) that will make the body of
the not() false, and thus the premise true, including all the cases where you
don't want it to be.

One way to fix this is to introduce an auxiliary judgment:

    statEnv.typeDefn(expanded-QName) = define type QName2 AtomicTypeDerivation
    --------------------------------------------------------------------------
    expanded-QName denotes a constructor function

then replace premise 2 with

    not( expanded-QName denotes a constructor function )

Received on Wednesday, 13 September 2006 02:09:44 UTC