context: It is probably the case that Brian is green. It is impossible that Fred is in the school. It is highly unlikely that Bernhard is white. It is impossible that if either 'Fred is in the school' or 'Bernhard is white' but not both then Greg is a frog. It is highly unlikely that if 'Brian is green' or 'Fred is in the school' or both then Jeff went to the garden. There is a better than even chance that if either 'Brian is green' or 'Fred is in the school' but not both then John moved to the office.
hypothesis: It is highly unlikely that either 'Bernhard is white' or 'Fred is in the school' but not both.
valid_hypothesis: It is highly unlikely that either 'Bernhard is white' or 'Fred is in the school' but not both.
invalid_hypothesis: We believe that either 'Bernhard is white' or 'Fred is in the school' 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.0::factB.
    0.05::factC.
    %hop1
    0.0::factX:-xor(factB,factC).
    0.05::factY:-or(factA,factB).
    0.6::factZ:-xor(factA,factB).
  
    %hop2
    conclusion:-xor(factC,factB).
  
    query(conclusion).
    
hypothesis_assertion: Either 'Bernhard is white' or 'Fred is in the school' but not both.