OKlibrary  0.2.1.6
Marx2008.hpp
Go to the documentation of this file.
00001 // Matthew Gwynne 24.5.2010 (Swansea)
00002 /* Copyright 2010 Oliver Kullmann
00003 This file is part of the OKlibrary. OKlibrary is free software; you can redistribute
00004 it and/or modify it under the terms of the GNU General Public License as published by
00005 the Free Software Foundation and included in this library; either version 3 of the
00006 License, or any later version. */
00007 
00116 Marx_LibDNF_FF : 
00117   [[gv("Union"),gv("NGO"),gv("Public"),gv("Change")],
00118    [{-gv("Change"),gv("NGO"),-gv("Public"),-gv("Union")},
00119     {-gv("Change"),gv("NGO"),-gv("Public"),gv("Union")},
00120     {-gv("Change"),gv("NGO"),gv("Public"),-gv("Union")},
00121     {gv("Change"),-gv("NGO"),-gv("Public"),-gv("Union")},
00122     {gv("Change"),-gv("NGO"),gv("Public"),-gv("Union")},
00123     {gv("Change"),gv("NGO"),-gv("Public"),gv("Union")},
00124     {gv("Change"),gv("NGO"),gv("Public"),-gv("Union")},
00125     {gv("Change"),gv("NGO"),gv("Public"),gv("Union")}]$
00126 /* CNF assuming liberal extension */
00127 Marx_LibCNF_FF:
00128   [[gv("Union"),gv("NGO"),gv("Public"),gv("Change")],
00129    [{-gv("Change"),-gv("NGO"),gv("Public"),gv("Union")},
00130     {gv("Change"),gv("NGO"),gv("Public"),-gv("Union")},
00131     {gv("Change"),-gv("NGO"),-gv("Public"),-gv("Union")},
00132     {gv("Change"),gv("NGO"),gv("Public"),-gv("Union")},
00133     {gv("Change"),gv("NGO"),gv("Public"),-gv("Union")},
00134     {gv("Change"),gv("NGO"),gv("Public"),-gv("Union")},
00135     {gv("Change"),gv("NGO"),-gv("Public"),-gv("Union")},
00136     {gv("Change"),gv("NGO"),-gv("Public"),gv("Union")},
00137     {gv("Change"),gv("NGO"),gv("Public"),gv("Union")},
00138     {-gv("Change"),gv("NGO"),gv("Public"),-gv("Union")},
00139     {gv("Change"),gv("NGO"),gv("Public"),-gv("Union")},
00140     {-gv("Change"),gv("NGO"),-gv("Public"),-gv("Union")}]]$
00141 /* DNF assuming conservative extension */
00142 Marx_ConDNF_FF : 
00143   [[gv("Union"),gv("NGO"),gv("Public"),gv("Change")],
00144    [{gv("Change"),gv("NGO"),gv("Public"),-gv("Union")},
00145     {gv("Change"),gv("NGO"),gv("Public"),gv("Union")},
00146     {gv("Change"),gv("NGO"),gv("Public"),gv("Union")},
00147     {gv("Change"),gv("NGO"),gv("Public"),-gv("Union")},
00148     {gv("Change"),gv("NGO"),gv("Public"),gv("Union")},
00149     {-gv("Change"),gv("NGO"),gv("Public"),-gv("Union")}]]$
00150 /* CNF assuming conservative extension */
00151 Marx_ConCNF_FF :
00152   [[gv("Union"),gv("NGO"),gv("Public"),gv("Change")],
00153    [{-gv("Change"),-gv("NGO"),gv("Public"),-gv("Union")},
00154     {-gv("Change"),-gv("NGO"),gv("Public"),gv("Union")},
00155     {-gv("Change"),gv("NGO"),-gv("Public"),-gv("Union")},
00156     {-gv("Change"),gv("NGO"),-gv("Public"),gv("Union")},
00157     {-gv("Change"),gv("NGO"),gv("Public"),-gv("Union")},
00158     {-gv("Change"),gv("NGO"),gv("Public"),gv("Union")},
00159     {gv("Change"),-gv("NGO"),-gv("Public"),-gv("Union")},
00160     {gv("Change"),-gv("NGO"),gv("Public"),-gv("Union")},
00161     {gv("Change"),-gv("NGO"),gv("Public"),gv("Union")},
00162     {gv("Change"),gv("NGO"),-gv("Public"),-gv("Union")},
00163     {gv("Change"),gv("NGO"),-gv("Public"),gv("Union")},
00164     {gv("Change"),gv("NGO"),gv("Public"),-gv("Union")},
00165     {gv("Change"),gv("NGO"),gv("Public"),gv("Union")}]]$
00166     \endverbatim
00167     Note that the data doesn't contain any conflicts.
00168    </li>
00169    <li> Where for each of the above we get the following 
00170    minimum representations
00171    \verbatim
00172 /* Minimal representations of the liberal extensions */
00173 all_minequiv_bvsr_sub_cs(Marx_LibDNF_FF[2],Marx_ConDNF_FF[2]);
00174   [{{-gv("Change"),gv("NGO"),-gv("Union")},
00175     {gv("Change"),gv("NGO"),gv("Public")}},
00176    {{gv("Change"),gv("NGO"),gv("Public")},
00177     {gv("NGO"),gv("Public"),-gv("Union")}},
00178    {{gv("Change"),gv("NGO"),gv("Union")},
00179     {gv("NGO"),gv("Public"),-gv("Union")}}]
00180 
00181 
00182 all_minequiv_bvsr_sub_cs(Marx_LibCNF_FF[2],Marx_LibCNF_FF[2]);
00183   [{{-gv("Change"),-gv("NGO"),gv("Public"),gv("Union")},
00184     {gv("Change"),gv("NGO")},
00185     {gv("Change"),-gv("Public"),-gv("Union")},
00186     {gv("NGO"),-gv("Union")}}]
00187 
00188 
00189 /* Minimal representations of the conservative extensions */
00190 all_minequiv_bvsr_sub_cs(Marx_ConDNF_FF[2],Marx_ConDNF_FF[2]);
00191   [{{gv("Change"),gv("NGO"),gv("Public")},
00192     {gv("NGO"),gv("Public"),-gv("Union")}}]
00193 
00194 all_minequiv_bvsr_sub_cs(Marx_ConCNF_FF[2],Marx_LibCNF_FF[2]);
00195   [{{gv("Change"),-gv("Union")},{gv("NGO")},{gv("Public")}}]
00196    \endverbatim
00197    Note here that the conservative DNF and liberal CNF correspond
00198    to the analysis chosen by Marx in the paper.
00199    </li>
00200   </ul>
00201 
00202 
00203   \todo Relational analysis
00204   <ul>
00205    <li> Other than the basic DNFs and CNFs given in "Functional analysis",
00206    we also have the relational viewpoint, where we consider the output
00207    variable as a variable like any other, and then we consider all
00208    rows in the data table as true. </li>
00209    <li> The question is: what to consider false? </li>
00210    <li> If we assume nothing is false, then {{}} is the minimal DNF
00211    for any such truth table. </li>
00212    <li> One method for constructing a non-trivial relational
00213    model is to assume that the behaviour is functional on the rows in
00214    the truth table (otherwise we would have observed the contradictory
00215    rows). </li>
00216    <li> In this case we get
00217    \verbatim
00218 Marx_RelLibDNF_FF : 
00219   [[gv("Union"),gv("NGO"),gv("Public"),gv("Change"),gv("FLA")],
00220    [{-gv("Change"),-gv("FLA"),-gv("NGO"),-gv("Public"),-gv("Union")},
00221     {-gv("Change"),-gv("FLA"),-gv("NGO"),-gv("Public"),gv("Union")},
00222     {-gv("Change"),-gv("FLA"),-gv("NGO"),gv("Public"),-gv("Union")},
00223     {-gv("Change"),-gv("FLA"),-gv("NGO"),gv("Public"),gv("Union")},
00224     {-gv("Change"),-gv("FLA"),gv("NGO"),-gv("Public"),-gv("Union")},
00225     {-gv("Change"),-gv("FLA"),gv("NGO"),-gv("Public"),gv("Union")},
00226     {-gv("Change"),-gv("FLA"),gv("NGO"),gv("Public"),gv("Union")},
00227     {-gv("Change"),gv("FLA"),gv("NGO"),-gv("Public"),-gv("Union")},
00228     {-gv("Change"),gv("FLA"),gv("NGO"),-gv("Public"),gv("Union")},
00229     {-gv("Change"),gv("FLA"),gv("NGO"),gv("Public"),-gv("Union")},
00230     {gv("Change"),-gv("FLA"),-gv("NGO"),-gv("Public"),-gv("Union")},
00231     {gv("Change"),-gv("FLA"),-gv("NGO"),-gv("Public"),gv("Union")},
00232     {gv("Change"),-gv("FLA"),-gv("NGO"),gv("Public"),-gv("Union")},
00233     {gv("Change"),-gv("FLA"),-gv("NGO"),gv("Public"),gv("Union")},
00234     {gv("Change"),-gv("FLA"),gv("NGO"),-gv("Public"),-gv("Union")},
00235     {gv("Change"),-gv("FLA"),gv("NGO"),-gv("Public"),gv("Union")},
00236     {gv("Change"),gv("FLA"),-gv("NGO"),-gv("Public"),-gv("Union")},
00237     {gv("Change"),gv("FLA"),-gv("NGO"),gv("Public"),-gv("Union")},
00238     {gv("Change"),gv("FLA"),gv("NGO"),-gv("Public"),gv("Union")},
00239     {gv("Change"),gv("FLA"),gv("NGO"),gv("Public"),-gv("Union")},
00240     {gv("Change"),gv("FLA"),gv("NGO"),gv("Public"),gv("Union")}]]$
00241 
00242 Marx_RelLibCNF_FF : 
00243   [[gv("Union"),gv("NGO"),gv("Public"),gv("Change"),gv("FLA")],
00244    [{-gv("Change"),gv("FLA"),-gv("NGO"),-gv("Public"),gv("Union")},
00245     {-gv("Change"),gv("FLA"),-gv("NGO"),-gv("Public"),-gv("Union")},
00246     {-gv("Change"),gv("FLA"),-gv("NGO"),-gv("Public"),-gv("Union")},
00247     {-gv("Change"),gv("FLA"),-gv("NGO"),-gv("Public"),gv("Union")},
00248     {-gv("Change"),-gv("FLA"),-gv("NGO"),gv("Public"),gv("Union")},
00249     {gv("Change"),-gv("FLA"),gv("NGO"),gv("Public"),-gv("Union")},
00250     {gv("Change"),-gv("FLA"),-gv("NGO"),-gv("Public"),-gv("Union")},
00251     {gv("Change"),-gv("FLA"),gv("NGO"),gv("Public"),-gv("Union")},
00252     {gv("Change"),-gv("FLA"),gv("NGO"),gv("Public"),-gv("Union")},
00253     {gv("Change"),-gv("FLA"),gv("NGO"),gv("Public"),-gv("Union")},
00254     {gv("Change"),-gv("FLA"),gv("NGO"),-gv("Public"),-gv("Union")},
00255     {gv("Change"),-gv("FLA"),gv("NGO"),-gv("Public"),gv("Union")},
00256     {-gv("Change"),gv("FLA"),-gv("NGO"),-gv("Public"),-gv("Union")},
00257     {gv("Change"),-gv("FLA"),gv("NGO"),gv("Public"),gv("Union")},
00258     {-gv("Change"),-gv("FLA"),gv("NGO"),gv("Public"),-gv("Union")},
00259     {gv("Change"),-gv("FLA"),gv("NGO"),gv("Public"),-gv("Union")},
00260     {-gv("Change"),-gv("FLA"),gv("NGO"),-gv("Public"),-gv("Union")},
00261     {gv("Change"),gv("FLA"),-gv("NGO"),-gv("Public"),gv("Union")}]]$
00262  
00263 
00264 Marx_RelConDNF_FF : 
00265   [[gv("Union"),gv("NGO"),gv("Public"),gv("Change"),gv("FLA")],
00266    [{gv("Change"),gv("FLA"),gv("NGO"),gv("Public"),-gv("Union")},
00267     {gv("Change"),gv("FLA"),gv("NGO"),gv("Public"),gv("Union")},
00268     {gv("Change"),gv("FLA"),gv("NGO"),gv("Public"),gv("Union")},
00269     {gv("Change"),gv("FLA"),gv("NGO"),gv("Public"),-gv("Union")},
00270     {gv("Change"),-gv("FLA"),gv("NGO"),-gv("Public"),-gv("Union")},
00271     {-gv("Change"),-gv("FLA"),-gv("NGO"),-gv("Public"),gv("Union")},
00272     {-gv("Change"),-gv("FLA"),gv("NGO"),gv("Public"),gv("Union")},
00273     {-gv("Change"),-gv("FLA"),-gv("NGO"),-gv("Public"),gv("Union")},
00274     {-gv("Change"),-gv("FLA"),-gv("NGO"),-gv("Public"),gv("Union")},
00275     {-gv("Change"),-gv("FLA"),-gv("NGO"),-gv("Public"),gv("Union")},
00276     {-gv("Change"),-gv("FLA"),-gv("NGO"),gv("Public"),gv("Union")},
00277     {-gv("Change"),-gv("FLA"),-gv("NGO"),gv("Public"),-gv("Union")},
00278     {gv("Change"),gv("FLA"),gv("NGO"),gv("Public"),gv("Union")},
00279     {-gv("Change"),-gv("FLA"),-gv("NGO"),-gv("Public"),-gv("Union")},
00280     {gv("Change"),-gv("FLA"),-gv("NGO"),-gv("Public"),gv("Union")},
00281     {-gv("Change"),-gv("FLA"),-gv("NGO"),-gv("Public"),gv("Union")},
00282     {gv("Change"),-gv("FLA"),-gv("NGO"),gv("Public"),gv("Union")},
00283     {-gv("Change"),gv("FLA"),gv("NGO"),gv("Public"),-gv("Union")}]]$
00284  
00285 Marx_RelConCNF_FF : 
00286   [[gv("Union"),gv("NGO"),gv("Public"),gv("Change"),gv("FLA")],
00287    [{-gv("Change"),-gv("FLA"),-gv("NGO"),gv("Public"),-gv("Union")},
00288     {-gv("Change"),-gv("FLA"),-gv("NGO"),gv("Public"),gv("Union")},
00289     {-gv("Change"),-gv("FLA"),gv("NGO"),-gv("Public"),-gv("Union")},
00290     {-gv("Change"),-gv("FLA"),gv("NGO"),-gv("Public"),gv("Union")},
00291     {-gv("Change"),-gv("FLA"),gv("NGO"),gv("Public"),-gv("Union")},
00292     {-gv("Change"),-gv("FLA"),gv("NGO"),gv("Public"),gv("Union")},
00293     {-gv("Change"),gv("FLA"),-gv("NGO"),-gv("Public"),-gv("Union")},
00294     {-gv("Change"),gv("FLA"),-gv("NGO"),-gv("Public"),gv("Union")},
00295     {-gv("Change"),gv("FLA"),-gv("NGO"),gv("Public"),-gv("Union")},
00296     {-gv("Change"),gv("FLA"),gv("NGO"),-gv("Public"),gv("Union")},
00297     {-gv("Change"),gv("FLA"),gv("NGO"),gv("Public"),gv("Union")},
00298     {gv("Change"),-gv("FLA"),-gv("NGO"),-gv("Public"),-gv("Union")},
00299     {gv("Change"),-gv("FLA"),-gv("NGO"),gv("Public"),-gv("Union")},
00300     {gv("Change"),-gv("FLA"),-gv("NGO"),gv("Public"),gv("Union")},
00301     {gv("Change"),-gv("FLA"),gv("NGO"),-gv("Public"),-gv("Union")},
00302     {gv("Change"),-gv("FLA"),gv("NGO"),-gv("Public"),gv("Union")},
00303     {gv("Change"),-gv("FLA"),gv("NGO"),gv("Public"),-gv("Union")},
00304     {gv("Change"),-gv("FLA"),gv("NGO"),gv("Public"),gv("Union")},
00305     {gv("Change"),gv("FLA"),-gv("NGO"),-gv("Public"),gv("Union")},
00306     {gv("Change"),gv("FLA"),-gv("NGO"),gv("Public"),-gv("Union")},
00307     {gv("Change"),gv("FLA"),-gv("NGO"),gv("Public"),gv("Union")}]]$
00308    \endverbatim
00309    with minimum representations
00310    \verbatim
00311 /* Minimal representations of the liberal extensions */
00312 all_minequiv_bvsr_sub_cs(Marx_RelLibDNF_FF[2],Marx_RelConDNF_FF[2]);
00313   [{{-gv("Change"),-gv("FLA"),gv("Union")},
00314     {-gv("Change"),gv("FLA"),gv("NGO"),-gv("Union")},
00315     {gv("Change"),gv("FLA"),gv("NGO"),gv("Public")},
00316     {-gv("FLA"),-gv("NGO")},{-gv("FLA"),-gv("Public")}},
00317    {{-gv("Change"),-gv("FLA"),gv("Union")},
00318     {gv("Change"),gv("FLA"),gv("NGO"),gv("Public")},
00319     {-gv("FLA"),-gv("NGO")},{-gv("FLA"),-gv("Public")},
00320     {gv("FLA"),gv("NGO"),gv("Public"),-gv("Union")}},
00321    {{-gv("Change"),-gv("FLA"),gv("Union")},
00322     {gv("Change"),gv("FLA"),gv("NGO"),gv("Union")},
00323     {-gv("FLA"),-gv("NGO")},{-gv("FLA"),-gv("Public")},
00324     {gv("FLA"),gv("NGO"),gv("Public"),-gv("Union")}}]
00325 
00326 
00327 all_minequiv_bvsr_sub_cs(Marx_RelLibCNF_FF[2],Marx_RelLibCNF_FF[2]);
00328   [{{-gv("Change"),-gv("FLA"),-gv("NGO"),gv("Public"),gv("Union")},
00329     {-gv("Change"),gv("FLA"),-gv("NGO"),-gv("Public")},
00330     {gv("Change"),-gv("FLA"),gv("NGO")},
00331     {gv("Change"),-gv("FLA"),-gv("Public"),-gv("Union")},
00332     {-gv("FLA"),gv("NGO"),-gv("Union")},
00333     {gv("FLA"),-gv("NGO"),-gv("Public"),gv("Union")}}]
00334 
00335 
00336 /* Minimal representations of the conservative extensions */
00337 all_minequiv_bvsr_sub_cs(Marx_RelConDNF_FF[2],Marx_RelConDNF_FF[2]);
00338   [{{-gv("Change"),-gv("FLA"),-gv("NGO")},
00339     {-gv("Change"),-gv("FLA"),gv("Public"),gv("Union")},
00340     {gv("Change"),-gv("FLA"),gv("NGO"),-gv("Public"),-gv("Union")},
00341     {gv("Change"),gv("FLA"),gv("NGO"),gv("Public")},
00342     {-gv("FLA"),-gv("NGO"),gv("Union")},
00343     {gv("FLA"),gv("NGO"),gv("Public"),-gv("Union")}}]
00344 
00345 
00346 all_minequiv_bvsr_sub_cs(Marx_RelConCNF_FF[2],Marx_RelLibCNF_FF[2]);
00347   [{{-gv("Change"),gv("FLA"),-gv("NGO"),-gv("Public")},
00348     {gv("Change"),-gv("FLA"),-gv("Union")},
00349     {gv("Change"),gv("FLA"),-gv("NGO"),gv("Union")},
00350     {-gv("FLA"),gv("NGO")},{-gv("FLA"),gv("Public")}},
00351    {{-gv("Change"),gv("FLA"),-gv("NGO"),-gv("Public")},
00352     {gv("Change"),-gv("FLA"),-gv("Union")},
00353     {-gv("FLA"),gv("NGO")},{-gv("FLA"),gv("Public")},
00354     {gv("FLA"),-gv("NGO"),-gv("Public"),gv("Union")}},
00355    {{-gv("Change"),gv("FLA"),-gv("NGO"),-gv("Union")},
00356     {gv("Change"),-gv("FLA"),-gv("Union")},
00357     {-gv("FLA"),gv("NGO")},{-gv("FLA"),gv("Public")},
00358     {gv("FLA"),-gv("NGO"),-gv("Public"),gv("Union")}}]
00359    \endverbatim
00360    </li>
00361   </ul>
00362 
00363 */
00364