3
0
Fork 0
mirror of https://github.com/Z3Prover/z3 synced 2025-08-09 20:50:50 +00:00
z3/src/tactic/dependency_converter.h

45 lines
1,013 B
C++

/*++
Copyright (c) 2017 Microsoft Corporation
Module Name:
dependency_converter.h
Abstract:
Utility for converting dependencies across subgoals.
Author:
Nikolaj Bjorner (nbjorner) 2017-11-19
Notes:
--*/
#pragma once
#include "util/ref.h"
#include "ast/ast_pp_util.h"
#include "model/model.h"
#include "ast/converters/converter.h"
class goal;
class dependency_converter : public converter {
public:
static dependency_converter* unit(expr_dependency_ref& d);
static dependency_converter* concat(dependency_converter * dc1, dependency_converter * dc2);
static dependency_converter* concat(unsigned n, goal * const* goals);
virtual expr_dependency_ref operator()() = 0;
virtual dependency_converter * translate(ast_translation & translator) = 0;
};
typedef ref<dependency_converter> dependency_converter_ref;
typedef sref_vector<dependency_converter> dependency_converter_ref_vector;
typedef sref_buffer<dependency_converter> dependency_converter_ref_buffer;