context: It is certain that Bernhard is a rhino. There is little chance that Julius is white. It is probably not the case that Fred went to the office. There is almost no chance that if either 'Fred went to the office' or 'Bernhard is a rhino' but not both then Greg is a frog. It is improbable that if either 'Julius is white' or 'Bernhard is a rhino' but not both then John moved to the garden. There is a very good chance that if 'Bernhard is a rhino and Fred went to the office' then Brian is green.
hypothesis: We believe that either 'Brian is green' or 'Fred went to the office' but not both.
valid_hypothesis: It is highly unlikely that either 'Brian is green' or 'Fred went to the office' but not both.
invalid_hypothesis: We believe that either 'Brian is green' or 'Fred went to the office' 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
    1.0::factA.
    0.1::factB.
    0.25::factC.
    %hop1
    0.02::factX:-xor(factC,factA).
    0.1::factY:-xor(factB,factA).
    0.8::factZ:-and(factA,factC).
  
    %hop2
    conclusion:-xor(factZ,factC).
  
    query(conclusion).
    
hypothesis_assertion: Either 'Brian is green' or 'Fred went to the office' but not both.