1
/* Copyright (C) 2020 Nikolaj J. Ulrik <nikolaj@njulrik.dk>,
2
* Simon M. Virenfeldt <simon@simwir.dk>
4
* This program is free software: you can redistribute it and/or modify
5
* it under the terms of the GNU General Public License as published by
6
* the Free Software Foundation, either version 3 of the License, or
7
* (at your option) any later version.
9
* This program is distributed in the hope that it will be useful,
10
* but WITHOUT ANY WARRANTY; without even the implied warranty of
11
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12
* GNU General Public License for more details.
14
* You should have received a copy of the GNU General Public License
15
* along with this program. If not, see <http://www.gnu.org/licenses/>.
18
#ifndef VERIFYPN_SPOTTOPQL_H
19
#define VERIFYPN_SPOTTOPQL_H
21
#include "PetriEngine/PQL/Expressions.h"
22
#include "LTL/LTLToBuchi.h"
23
#include <spot/tl/formula.hh>
27
* Transform a Spot formula back into the PQL expression tree form.
28
* @param formula The formula to translate to PQL
29
* @param apinfo List of atomic propositions in the formula. This should have been created by {@link LTL::to_spot_formula}.
30
* @return A PQL formula equivalent to the passed spot formula.
32
PetriEngine::PQL::Condition_ptr toPQL(const spot::formula &formula, const APInfo &apinfo);
35
* Simplify an LTL formula using Spot's formula simplifier. Throws if formula is not valid LTL.
36
* @param formula The formula to simplify.
37
* @return the simplified formula.
39
PetriEngine::PQL::Condition_ptr simplify(const PetriEngine::PQL::Condition_ptr &formula, APCompression compress = APCompression::Choose);
42
#endif // VERIFYPN_SPOTTOPQL_H