- From: <bugzilla@wiggum.w3.org>
- Date: Wed, 13 Jul 2005 05:02:59 +0000
- To: public-qt-comments@w3.org
- Cc:
http://www.w3.org/Bugs/Public/show_bug.cgi?id=1563 Summary: [FS] technical: 4 Expressions Product: XPath / XQuery / XSLT Version: Last Call drafts Platform: All OS/Version: All Status: NEW Severity: normal Priority: P2 Component: Formal Semantics AssignedTo: simeon@us.ibm.com ReportedBy: jmdyck@ibiblio.org QAContact: public-qt-comments@w3.org STA / rule 1 This rule doesn't say what you mean. The prose says (roughly): error = (Expr has empty type) and not(Expr is an exception) which means (via one of De Morgan's laws) not(error) = not(Expr has empty type) or (Expr is an exception) which is not at all what the rule says. Specifically, if Expr is one of the exceptions, then (regardless of its type!), the prose says that it is *not* an error, but the rule says that it *is* an error (because premise 2 fails to hold, and so the rule fails to hold, and so supposedly an error is raised). All of which is moot, because the rule's conclusion is the same as premise 1, so an inference procedure would have no need to apply the rule. (So whether it fails or not is inconsequential.) It seems to me that the more straightforward way to write the rule is: statEnv |- Expr : Type Type = empty not( Expr is an exception ) --------------------------- statEnv |- Expr raises error although it's unclear whether the inference procedure is obliged to try to satisfy the rule. A more robust alternative would be to go to the STA for each expression other than the exceptions, and add a not(Type = empty) premise (if it's not already implied by other premises).
Received on Wednesday, 13 July 2005 05:03:02 UTC