[xquery-talk] Function for determining one XPath as subset of another

Pavel Velikhov pavel.velikhov at gmail.com
Wed Jan 27 02:39:37 PST 2016


A user-defined function in any reasonable language (including Haskell and XQuery) is Turing-complete.

So you cannot prove that:
  - two functions are equivalent
  - the functions terminate
  - basically any non-trivial fact

Unless you make some strong assumptions about these functions.

> On 27 Jan 2016, at 13:31, W.S. Hager <wshager at gmail.com> wrote:
> 
> There's the notion of co-inductive types. I think in Haskell you could proof the case, so why not in xquery?
> 
> 2016-01-27 11:24 GMT+01:00 Pavel Velikhov <pavel.velikhov at gmail.com <mailto:pavel.velikhov at gmail.com>>:
> 
>> 
>> Indeed, the expressions should terminate.
> 
> Since you can include a function call in your path expression, and you can include your own custom function, there is
> no guarantee that the expression will terminate.
> 
> I.e. you need to take a subset of possible path expression already, in general case the problem is undecidable.
> 
>> 
>> 2016-01-27 11:11 GMT+01:00 Pavel Velikhov <pavel.velikhov at gmail.com <mailto:pavel.velikhov at gmail.com>>:
>> 
>>> 
>>> Or simplified: is the set selected by p1 equal to the set selected by p2?
>> 
>> If we allow p1 and p2 to be arbitrary XQuery path expressions, then its undecidable.
>> I can reduce the halting problem of Turing machines to this test.
>> 
>>> 
>>> 2016-01-27 11:09 GMT+01:00 W.S. Hager <wshager at gmail.com <mailto:wshager at gmail.com>>:
>>> Isn't the constraint in this case the test: is p2 a subset of p1?
>>> 
>>> 2016-01-27 11:04 GMT+01:00 Pavel Velikhov <pavel.velikhov at gmail.com <mailto:pavel.velikhov at gmail.com>>:
>>> 
>>> > On 27 Jan 2016, at 12:54, W.S. Hager <wshager at gmail.com <mailto:wshager at gmail.com>> wrote:
>>> >
>>> > Can't we formally proof something as obvious Adam's case?
>>> 
>>> In Adam’s case we want to test whether path expression p1 subsumes path expression p2.
>>> If we don’t put any conditions on p1 and p2, the problem is undecidable: p1 and p2 may include
>>> function calls, so the expressive power of p1 and p2 are that of a Turing Machine.
>>> 
>>> 
>>> 
>>> -- 
>>> W.S. Hager
>>> Lagua Web Solutions
>>> http://lagua.nl <http://lagua.nl/>
>>> 
>>> 
>>> 
>>> -- 
>>> W.S. Hager
>>> Lagua Web Solutions
>>> http://lagua.nl <http://lagua.nl/>
>> 
>> 
>> 
>> 
>> -- 
>> W.S. Hager
>> Lagua Web Solutions
>> http://lagua.nl <http://lagua.nl/>
> 
> 
> 
> 
> -- 
> W.S. Hager
> Lagua Web Solutions
> http://lagua.nl <http://lagua.nl/>

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://x-query.com/pipermail/talk/attachments/20160127/bf6a4081/attachment.html>


More information about the talk mailing list