Hacker News new | ask | show | jobs
by LaPrometheus 3252 days ago
Thanks for trying out. The parser error report is not great now. The real error actually, it should be "union all" rather than "union".

I changed your query:

/* define schema s1, here s1 can contain any number of attributes, but it has to at least contain integer attributes x and y */ schema s1(x:int, ya:int, ??);

    schema s2(yb:int, ??);        -- define schema s2
    
    table a(s1);            -- define table a using schema s1
    table b(s2);            -- define table b using schema s1
    
    query q1                -- define query q1 on tables a and b
    `select distinct x.x as ax 
    from a x, b y
     where x.ya = y.yb`;
    
    query q2                -- define query q2 likewise
    `(select x.x as ax 
     from a x, a y, b z 
     where x.x = y.x and x.ya = z.yb)
     union all (select 1 as ax from a x where 1 = 0)`;
    
    verify q1 q2;           -- does q1 equal to q2?
The Rosette execution indeed returns a counterexample (since they are not equal). There is an error in Coq code generation part, we are fixing that now.
1 comments

Yes, I understood later on that you're not supporting union yet. Would have been nice, though, there are quite some caveats when trying to transform distinct / union into one another... :)

Btw, another parser error happened when I indented the code, e.g. pasting the indented code from Hackernews here into your tool. The parser then complains about \r or something like that.

Please try again now :)