/******************************************************************************* / / filename: p1.pl / / description: A program which reasons with FDs. / / author: First Last / login id: cps430-n1.xx / / course: CPS 430 / instructor: Perugini / assignment: Project #1 // compiler: SWI-PROLOG 5.6.x (www.swi-prolog.org) / / assigned: October 3, 2007 / due: October 31, 2007 / /******************************************************************************/ % these must be rules, not facts! % options, relation, FDs, closure fdinf(OPTIONS, RELATION, FDs, CLOSURE) :- /* ... ... */ % relation, FDs1, FDs2 fdinf2(RELATION, FDs1, FDs2) :- /* ... ... */ % extra credit mineMVDs(RELATION, LIST_OF_TUPLES, MVDs) :- /* ... ... */ % of course you can have many predicates here to do the work