Formula
This commit is contained in:
@@ -58,7 +58,10 @@ class Transition:
|
|||||||
return "{ " + r + " }"
|
return "{ " + r + " }"
|
||||||
|
|
||||||
def __str__(self):
|
def __str__(self):
|
||||||
|
if self.guard:
|
||||||
return f"{self.get_context_str()}: {self.src} -> {self.dst} : {self.guard};"
|
return f"{self.get_context_str()}: {self.src} -> {self.dst} : {self.guard};"
|
||||||
|
else:
|
||||||
|
return f"{self.get_context_str()}: {self.src} -> {self.dst};"
|
||||||
|
|
||||||
|
|
||||||
class Automaton:
|
class Automaton:
|
||||||
@@ -161,6 +164,8 @@ class DRSGenerator:
|
|||||||
else:
|
else:
|
||||||
raise RuntimeError(f"Unknown automaton identifier: {self.aut_id}")
|
raise RuntimeError(f"Unknown automaton identifier: {self.aut_id}")
|
||||||
|
|
||||||
|
self.generate_formula()
|
||||||
|
|
||||||
def generate_automaton_4(self, n):
|
def generate_automaton_4(self, n):
|
||||||
aut = self.automaton
|
aut = self.automaton
|
||||||
|
|
||||||
@@ -250,6 +255,23 @@ class DRSGenerator:
|
|||||||
|
|
||||||
print(aut)
|
print(aut)
|
||||||
|
|
||||||
|
def generate_formula(self):
|
||||||
|
|
||||||
|
r = "rsctlk-property { f4 : AG( proc0.in IMPLIES C[proc0,proc1,proc2](~proc1.in AND ~proc2.in) ) };"
|
||||||
|
|
||||||
|
disjunction = " OR ".join([f"proc{i}.TF" for i in range(1, self.x + 1)])
|
||||||
|
conjunction = " AND ".join([f"~proc{i}.TF" for i in range(1, self.x + 1)])
|
||||||
|
|
||||||
|
r = (
|
||||||
|
"rsctlk-property { f0 : AG( K[proc0]( "
|
||||||
|
+ disjunction
|
||||||
|
+ " ) OR K[proc0]( "
|
||||||
|
+ conjunction
|
||||||
|
+ " ) ) };"
|
||||||
|
)
|
||||||
|
|
||||||
|
print(r)
|
||||||
|
|
||||||
|
|
||||||
def main():
|
def main():
|
||||||
if len(sys.argv) < 1 + 5:
|
if len(sys.argv) < 1 + 5:
|
||||||
|
|||||||
Reference in New Issue
Block a user