Re: completeness of the relational lattice
Date: Wed, 27 Jun 2007 10:14:16 -0700
Message-ID: <1182964456.876858.28340_at_g37g2000prf.googlegroups.com>
On Jun 26, 7:03 pm, Jan Hidders <hidd..._at_gmail.com> wrote:
> I suspect that the condition
> for r + (s * t) = (r + s) * (r + t)
> should be A(r) * A(s) = A(r) * A(t) = A(s) * A(t).
> So if two have an attribute, the third must also have it.
This is more powerful condition than in the "First steps..." paper. Indeed, the correct criteria is:
A(x,t) \/ (B(y,t) /\ C(z,t)) = (A(x,t) \/ B(y,t)) /\ (A(x,t) \/ C(z,t))
The proof is by writing down both sides in the set notation. Assuming general relation headers A(x,u,w,t), B(y,u,v,t), C(z,w,v,t) the left hand side works out to be
The right hand side evaluates to
exists zy : (exists xwv: A \/ B) /\ (exists xuv: A \/ C)
In predicate logic we have
exists x: (P /\ Q) <-> exists x: P /\ exists x: Q
so that attribute x could be moved outside.
I agree with your other post. It seems like advancing "the theory of
relations with known attributes" is easier at this point than the
"theory of general relations".
Received on Wed Jun 27 2007 - 19:14:16 CEST