isFinishEnvDef :: Def
isFinishEnvDef =
    Def "isFinishEnv" ["Env0", "reqLvl", "q8"] (
      fresh ["f", "s"] (
        (V "Env0" === C "pair" [V "f", V "s"]) &&&
        (fresh ["q9", "q10"] (
          (call "fancyEq" [V "f", V "reqLvl", V "q9"]) &&&
          (call "fancyEq" [V "s", V "reqLvl", V "q10"]) &&&
          (((V "q9" === C "true" []) &&&
          (V "q8" === C "true" [])) |||
          ((V "q9" === C "false" []) &&&
          (V "q8" === V "q10"))))))
    )
isFinishEnvDef :: Def
isFinishEnvDef =
    Def "isFinishEnv" ["Env0", "reqLvl", "q8"] (
      fresh ["f", "s"] (
        (V "Env0" === C "pair" [V "f", V "s"]) &&&
        (fresh ["q9", "q10"] (
          (call "fancyEq" [V "f", V "reqLvl", V "q9"]) &&&
          (call "fancyEq" [V "s", V "reqLvl", V "q10"]) &&&
          (((V "q9" === C "true" []) &&&
          (V "q8" === C "true" [])) |||
          ((V "q9" === C "false" []) &&&
          (V "q8" === V "q10"))))))
    )
isFinishEnvDef =
    Def "isFinishEnv" ["Env0", "reqLvl", "q8"] (
      fresh ["f", "s"] (
        (V "Env0" === C "pair" [V "f", V "s"]) &&&
        (fresh ["q9", "q10"] (
          (call "fancyEq" [V "f", V "reqLvl", V "q9"]) &&&
          (call "fancyEq" [V "s", V "reqLvl", V "q10"]) &&&
          (((V "q9" === C "true" []) &&&
          (V "q8" === C "true" [])) |||
          ((V "q9" === C "false" []) &&&
          (V "q8" === V "q10"))))))
    )