context: It is likely that Julius is white. It is likely that Greg is yellow. It is probable that Lily is green. We doubt that if 'Lily is green and Greg is yellow' then Fred is in the school. We believe that if 'Greg is yellow' or 'Julius is white' or both then Brian is gray. There is a very good chance that if 'Greg is yellow' or 'Lily is green' or both then John went to the kitchen.
hypothesis: It is likely that either 'John went to the kitchen' or 'Lily is green' but not both.
valid_hypothesis: It is probably not the case that either 'John went to the kitchen' or 'Lily is green' but not both.
invalid_hypothesis: It is likely that either 'John went to the kitchen' or 'Lily is green' but not both.
problog: 
    and(A,B) :- A,B.
    or(A,B) :- A;B.
    nand(A,B) :- not(and(A,B)).
    nor(A,B) :- not(or(A,B)).
    xor(A,B) :- or(A,B), nand(A,B).
  
    %hop0
    0.7::factA.
    0.7::factB.
    0.7::factC.
    %hop1
    0.2::factX:-and(factC,factB).
    0.75::factY:-or(factB,factA).
    0.8::factZ:-or(factB,factC).
  
    %hop2
    conclusion:-xor(factZ,factC).
  
    query(conclusion).
    
hypothesis_assertion: Either 'John went to the kitchen' or 'Lily is green' but not both.