use typename
[prop.git] / app / willard / out5
blob6536a57036164bce2962d01a914d1a56e7dc7deb
1 Input:
2 {x:[x,y,z] in [A,B,C]}
3 {x:[x,y,z] in [A,B,C]}
5 [Renaming phase]
7 {x:[x,y,z] in [A,B,C]}
9 [DNF construction and simplification phase]
11 {x:[x,y,z] in [A,B,C]}
13 [Constructing the query graph]
15 [Query Graph]
16 {x:[x,y,z] in [A,B,C]}
18 [Quantifier elimination phase]
20 {x:[x,y,z] in [A,B,C]}
22 [Disjunction removal phase]
24 {x:[x,y,z] in [A,B,C]}
26 [Conjunctive query decomposition phase]
28 [Query Graph]
29 {x:[x,y,z] in [A,B,C]}
31 [Projection recognition phase]
33 {x: x in A |  (exists z in C. (exists y in B. true))}
35 [Simple find/count query decomposition phase]
37 {x: x in A |  (exists z in C. (exists y in B. true))}
39 [Reiterating the transformation]
41 {x: x in A |  (exists z in C. (exists y in B. true))}
43 [Renaming phase]
45 {x: x in A |  (exists z in C. (exists y in B. true))}
47 [DNF construction and simplification phase]
49 {x: x in A |  (exists z in C.(nonempty B))}
51 [Constructing the query graph]
53 [Query Graph]
54 {x: x in A |  (exists z in C.(nonempty B))}
56 [Quantifier elimination phase]
58 if((nonempty C) and(nonempty B)) then A else {}
60 [Disjunction removal phase]
62 if((nonempty C) and(nonempty B)) then A else {}
64 [Conjunctive query decomposition phase]
66 [Query Graph]
67 if((nonempty C) and(nonempty B)) then A else {}
69 [Projection recognition phase]
71 if((nonempty C) and(nonempty B)) then A else {}
73 [Simple find/count query decomposition phase]
75 Output:
76 if((nonempty C) and(nonempty B)) then A else {}