Examples and clean-ups #1

Merged
Ghost merged 14 commits from drs_examples into master 2023-11-06 21:09:08 +00:00
2 changed files with 25 additions and 19 deletions
Showing only changes of commit a4d7d82edd - Show all commits

View File

@@ -135,7 +135,6 @@ class DRSGenerator:
rcts.add(SingleReaction(reactants, ["h"], ["TF"])) rcts.add(SingleReaction(reactants, ["h"], ["TF"]))
def generate(self): def generate(self):
print(f"# Generated for: x = {self.x}, y = {self.y}, z = {self.z}") print(f"# Generated for: x = {self.x}, y = {self.y}, z = {self.z}")
print("options { use-context-automaton; make-progressive; };") print("options { use-context-automaton; make-progressive; };")
@@ -211,7 +210,6 @@ class DRSGenerator:
print(aut) print(aut)
def generate_automaton_5(self, n): def generate_automaton_5(self, n):
aut = self.automaton aut = self.automaton
for i in range(0, (4 * n + 1)): for i in range(0, (4 * n + 1)):
@@ -256,7 +254,6 @@ class DRSGenerator:
print(aut) print(aut)
def generate_formula(self): def generate_formula(self):
disjunction = " OR ".join([f"proc{i}.TF" for i in range(1, self.y + 1)]) disjunction = " OR ".join([f"proc{i}.TF" for i in range(1, self.y + 1)])
conjunction = " AND ".join([f"~proc{i}.TF" for i in range(1, self.y + 1)]) conjunction = " AND ".join([f"~proc{i}.TF" for i in range(1, self.y + 1)])

View File

@@ -58,24 +58,34 @@ init_trans += "}: init -> green;\n"
transitions += init_trans transitions += init_trans
for i in range(n): for i in range(n):
transitions += "{:s}{{ proc{:d}={{allowed}} }}: green -> red : proc{:d}.req;\n".format(8*" ", i, i) transitions += (
"{:s}{{ proc{:d}={{allowed}} }}: green -> red : proc{:d}.req;\n".format(
8 * " ", i, i
)
)
no_req_cond = "~proc0.req" no_req_cond = "~proc0.req"
for i in range(1, n): for i in range(1, n):
no_req_cond += " AND ~proc{:d}.req".format(i) no_req_cond += " AND ~proc{:d}.req".format(i)
for i in range(n): for i in range(n):
transitions += "{:s}{{ proc{:d}={{}} }}: green -> green : {:s};\n".format(8*" ", i, no_req_cond) transitions += "{:s}{{ proc{:d}={{}} }}: green -> green : {:s};\n".format(
8 * " ", i, no_req_cond
)
for i in range(n): for i in range(n):
transitions += "{:s}{{ proc{:d}={{}} }}: red -> green : proc{:d}.leave;\n".format(8*" ", i, i) transitions += "{:s}{{ proc{:d}={{}} }}: red -> green : proc{:d}.leave;\n".format(
8 * " ", i, i
)
no_leave_cond = "~proc0.leave" no_leave_cond = "~proc0.leave"
for i in range(1, n): for i in range(1, n):
no_leave_cond += " AND ~proc{:d}.leave".format(i) no_leave_cond += " AND ~proc{:d}.leave".format(i)
for i in range(n): for i in range(n):
transitions += "{:s}{{ proc{:d}={{}} }}: red -> red : {:s};\n".format(8*" ", i, no_leave_cond) transitions += "{:s}{{ proc{:d}={{}} }}: red -> red : {:s};\n".format(
8 * " ", i, no_leave_cond
)
out += CA_STR.format(transitions) out += CA_STR.format(transitions)
@@ -114,4 +124,3 @@ formula = "AG( proc0.in IMPLIES C[{:s}]({:s}) )".format(all_agents,subf)
out += PROPERTY_STR.format("f4", formula) out += PROPERTY_STR.format("f4", formula)
print(out) print(out)