25#ifndef FUNCTIONINDEX_HPP
26#define FUNCTIONINDEX_HPP
32#include<unordered_map>
34#include "Function.hpp"
35#include "FunctionHash.hpp"
42using std::unordered_map;
46using FunIndexType = pair<string, Arity>;
47using FunMapType = pair<FunIndexType, Function*>;
69 vector<Function*> funs;
81 uint32_t skolem_function_number;
96 size_t get_size()
const {
return funs.size(); }
Basic representation of functions.
Definition Function.hpp:54
Mechanism for looking after functions.
Definition FunctionIndex.hpp:64
size_t get_size() const
Self-explanatory.
Definition FunctionIndex.hpp:96
Arity find_maximum_arity() const
Find the largest arity appearing for any Function in the index.
Definition FunctionIndex.cpp:71
Function * find_function(const string &, Arity)
Look up a stored Function by name and arity.
Definition FunctionIndex.cpp:60
Function * add_function(const string &, Arity)
Add a new function to the index.
Definition FunctionIndex.cpp:39
FunctionIndex(const FunctionIndex &)=delete
As usual, trying to copy one of these is a really bad idea.
Function * operator[](size_t i)
Access to pointers to Functions, but don't mess with them!
Definition FunctionIndex.hpp:128
Function * make_skolem_function(Arity)
Add a new Skolem function. Naming is automatic.
Definition FunctionIndex.cpp:54
Hashing for functions using the Boost library for hashing.
Definition FunctionHash.hpp:43