/*++
Copyright (c) 2011 Microsoft Corporation

Module Name:

    check_logic.h

Abstract:

    Check whether a given assertion is in the correct logic or not

Author:

    Leonardo de Moura (leonardo) 2011-08-11.

Revision History:

--*/
#pragma once

#include "ast/ast.h"

class check_logic {
    struct imp;
    imp * m_imp;
public:
    check_logic();
    ~check_logic();
    void reset();
    void set_logic(ast_manager & m, symbol const & logic);
    bool operator()(expr * n);
    bool operator()(func_decl * f);
    char const * get_last_error() const;
};

