context: It is almost certain that Fred is in the office. It is certain that Lily is a frog. It is probable that Julius is yellow. There is a better than even chance that if 'Julius is yellow and Lily is a frog' then Sandra dropped the milk. It is almost certain that if 'Lily is a frog and Fred is in the office' then Greg is white. There is almost no chance that if either 'Julius is yellow' or 'Fred is in the office' but not both then John picked up the apple.
hypothesis: It is probably not the case that 'Fred is in the office and Lily is a frog'.
valid_hypothesis: It is almost certain that 'Fred is in the office and Lily is a frog'.
invalid_hypothesis: It is probably not the case that 'Fred is in the office and Lily is a frog'.
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.95::factA.
    1.0::factB.
    0.7::factC.
    %hop1
    0.6::factX:-and(factC,factB).
    0.95::factY:-and(factB,factA).
    0.02::factZ:-xor(factC,factA).
  
    %hop2
    conclusion:-and(factA,factB).
  
    query(conclusion).
    
hypothesis_assertion: 'Fred is in the office and Lily is a frog'.