1/* Simple illustration of the extraction of integrity constraints
    2       by Aleph
    3 To run do the following:
    4       c. induce_constraints(Constraints)
    5 This will learn a set of (possibly redundant) constraints that hold
    6 in the background knowledge. The procedure is similar to that used
    7 by DeRaedt et al in Claudien. Constraints that are ``nearly true''
    8 can be obtained by changing the noise parameter.
    9*/

?- induce_constraints(Constraints). */

   13:- use_module(library(aleph)).   14:- if(current_predicate(use_rendering/1)).   15:- use_rendering(prolog).   16:- endif.   17:- aleph.   18
   19:- modeh(1,aleph_false).   20
   21:- modeb(*,human(-person)).   22
   23:- modeb(1,male(+person)).   24:- modeb(1,female(+person)).   25:- modeb(1,not(male(+person))).   26:- modeb(1,not(female(+person))).   27
   28:- determination(aleph_false/0,human/1).   29:- determination(aleph_false/0,male/1).   30:- determination(aleph_false/0,female/1).   31:- determination(aleph_false/0,(not)/1).   32
   33:- aleph_set(noise,0).   34
   35:-begin_bg.   36male('Fred').
   37female('Wilma').
   38human('Fred').
   39human('Wilma').
   40:-end_bg.   41:-begin_in_pos.   42:-end_in_pos.   43:-begin_in_neg.   44:-end_in_neg.