-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathevaluate_proof.h
More file actions
46 lines (38 loc) · 1.61 KB
/
evaluate_proof.h
File metadata and controls
46 lines (38 loc) · 1.61 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
#pragma once
#include <memory>
#include <map>
#include <vector>
#include "file_range.h"
struct Id;
struct Expression;
struct Proof;
struct Statement;
std::shared_ptr<const Expression> getProvenProp(
std::map<Id, std::shared_ptr<const Expression>>& proofId_to_provenProp,
std::map<Id, std::pair<std::vector<Id>, std::shared_ptr<const Expression>>>& definitionId_to_varsAndExpression,
const Proof* proof
);
void runStatements(
const std::vector<std::shared_ptr<const Statement>>& statements,
std::map<Id, std::shared_ptr<const Expression>>& proofId_to_provenProp,
std::map<Id, std::pair<std::vector<Id>, std::shared_ptr<const Expression>>>& definitionId_to_varsAndExpression,
std::vector<Id>& proofIdsAdded,
std::vector<Id>& definitionIdsAdded,
std::vector<Id>& forAnyVarsIntroduced,
std::vector<std::shared_ptr<const Expression>>& assumptionsIntroduced
);
struct ProofError {
std::string message;
FileRange fileRange;
FileRange fileRange2;
FileRange fileRange3;
inline ProofError(auto&& _message, FileRange _fileRange):
message(std::forward<decltype(_message)>(_message)),
fileRange(_fileRange), fileRange2(FileRange::none()), fileRange3(FileRange::none()) { }
inline ProofError(auto&& _message, FileRange _fileRange, FileRange _fileRange2):
message(std::forward<decltype(_message)>(_message)),
fileRange(_fileRange), fileRange2(_fileRange2), fileRange3(FileRange::none()) { }
inline ProofError(auto&& _message, FileRange _fileRange, FileRange _fileRange2, FileRange _fileRange3):
message(std::forward<decltype(_message)>(_message)),
fileRange(_fileRange), fileRange2(_fileRange2), fileRange3(_fileRange3) { }
};