3
0
Fork 0
mirror of https://github.com/Z3Prover/z3 synced 2025-04-08 18:31:49 +00:00
z3/lib/expr_delta.h
Leonardo de Moura e9eab22e5c Z3 sources
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
2012-10-02 11:35:25 -07:00

53 lines
936 B
C++

/*++
Copyright (c) 2008 Microsoft Corporation
Module Name:
expr_delta.h
Abstract:
Delta debugging support for specifications.
A specification is a list of assumptions.
Author:
Nikolaj Bjorner (nbjorner) 2008-21-06
Revision History:
--*/
#ifndef _EXPR_DELTA_H_
#define _EXPR_DELTA_H_
#include "ast.h"
class expr_delta {
ast_manager& m_manager;
expr_ref_vector m_exprs;
public:
expr_delta(ast_manager& m);
// Assert a constraint.
void assert_cnstr(expr* e);
//
// Create the n'th delta in dfs mode.
// resturn 'true' if a delta was obtained.
//
bool delta_dfs(unsigned n, expr_ref_vector& result);
private:
// perform delta
bool delta_dfs(unsigned& n, expr* e, expr_ref& result);
bool delta_dfs(unsigned& n, app* a, expr_ref& result);
bool delta_dfs(unsigned& n, unsigned sz, expr* const* exprs, expr_ref_vector& result);
};
#endif