z3-z3-4.13.0.src.test.fuzzing.expr_delta.h Maven / Gradle / Ivy
The newest version!
/*++
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:
--*/
#pragma once
#include "ast/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.
// return '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);
};