canSay01 :: Test 
canSay01 =
  let q  = makeAssertionUnsafe "Bob says Alice likes-jazz;"
      a1 = makeAssertionUnsafe "Bob says Alice can-say 0 Alice likes-jazz;"
      a2 = makeAssertionUnsafe "Alice says Alice likes-jazz;"
      ctx = stdCtx{ ac=AC [a1,a2], d=Infinity }
      prf = unsafePerformIO $ ctx ||- q
      pPrf = ppProof prf
  in Test { description = pShow ctx ++ " |= " ++ pShow q ++ pPrf
          , result = test . not . null $ prf
          }
canSay01 :: Test
canSay01 =
  let q  = makeAssertionUnsafe "Bob says Alice likes-jazz;"
      a1 = makeAssertionUnsafe "Bob says Alice can-say 0 Alice likes-jazz;"
      a2 = makeAssertionUnsafe "Alice says Alice likes-jazz;"
      ctx = stdCtx{ ac=AC [a1,a2], d=Infinity }
      prf = unsafePerformIO $ ctx ||- q
      pPrf = ppProof prf
  in Test { description = pShow ctx ++ " |= " ++ pShow q ++ pPrf
          , result = test . not . null $ prf
          }
canSay01 =
  let q  = makeAssertionUnsafe "Bob says Alice likes-jazz;"
      a1 = makeAssertionUnsafe "Bob says Alice can-say 0 Alice likes-jazz;"
      a2 = makeAssertionUnsafe "Alice says Alice likes-jazz;"
      ctx = stdCtx{ ac=AC [a1,a2], d=Infinity }
      prf = unsafePerformIO $ ctx ||- q
      pPrf = ppProof prf
  in Test { description = pShow ctx ++ " |= " ++ pShow q ++ pPrf
          , result = test . not . null $ prf
          }