greaterDef :: Def
greaterDef =
    Def "greater" ["a", "b", "q109"] (
      ((V "a" === C "o" []) &&&
      (V "q109" === C "false" [])) |||
      (fresh ["x"] (
        (V "a" === C "s" [V "x"]) &&&
        (((V "b" === C "o" []) &&&
        (V "q109" === C "true" [])) |||
        (fresh ["y"] (
            (V "b" === C "s" [V "y"]) &&&
            (call "greater" [V "x", V "y", V "q109"]))))))
    )
greaterDef :: Def
greaterDef =
    Def "greater" ["a", "b", "q109"] (
      ((V "a" === C "o" []) &&&
      (V "q109" === C "false" [])) |||
      (fresh ["x"] (
        (V "a" === C "s" [V "x"]) &&&
        (((V "b" === C "o" []) &&&
        (V "q109" === C "true" [])) |||
        (fresh ["y"] (
            (V "b" === C "s" [V "y"]) &&&
            (call "greater" [V "x", V "y", V "q109"]))))))
    )
greaterDef =
    Def "greater" ["a", "b", "q109"] (
      ((V "a" === C "o" []) &&&
      (V "q109" === C "false" [])) |||
      (fresh ["x"] (
        (V "a" === C "s" [V "x"]) &&&
        (((V "b" === C "o" []) &&&
        (V "q109" === C "true" [])) |||
        (fresh ["y"] (
            (V "b" === C "s" [V "y"]) &&&
            (call "greater" [V "x", V "y", V "q109"]))))))
    )