context: There is a very good chance that John moved to the garden. It is almost certain that Mary left the football. It is probably the case that Brian is green. It is probable that if either 'Brian is green' or 'Mary left the football' but not both then Greg is yellow. It is highly likely that if 'Brian is green' or 'John moved to the garden' or both then Julius is a swan. It is highly likely that if either 'Brian is green' or 'John moved to the garden' but not both then Sandra dropped the milk.
hypothesis: It is highly likely that 'Sandra dropped the milk' or 'Julius is a swan' or both.
valid_hypothesis: It is highly likely that 'Sandra dropped the milk' or 'Julius is a swan' or both.
invalid_hypothesis: It is probably not the case that 'Sandra dropped the milk' or 'Julius is a swan' or 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.8::factA.
    0.95::factB.
    0.7::factC.
    %hop1
    0.7::factX:-xor(factC,factB).
    0.9::factY:-or(factC,factA).
    0.9::factZ:-xor(factC,factA).
  
    %hop2
    conclusion:-or(factZ,factY).
  
    query(conclusion).
    
hypothesis_assertion: 'Sandra dropped the milk' or 'Julius is a swan' or both.