00001 #pragma once 00002 00003 #include <fdr/assertions/assertion.h> 00004 #include <fdr/lts/machine.h> 00005 #include <fdr/lts/semantic_model.h> 00006 00007 namespace FDR 00008 { 00009 namespace Assertions 00010 { 00014 class NegatedAssertion : public Assertion 00015 { 00016 public: 00017 ~NegatedAssertion(); 00018 00019 NegatedAssertion(const NegatedAssertion& assertion) = delete; 00020 NegatedAssertion& operator=(const NegatedAssertion& assertion) = delete; 00021 00023 std::shared_ptr<Assertion> inner_assertion() const; 00024 00025 private: 00026 NegatedAssertion(); 00027 00028 friend struct AssertionFactory; 00029 }; 00030 00031 } // end Assertions 00032 } // end FDR