#!/usr/bin/env python from rs import * from smt import * from logics import * from rsltl_shortcuts import * def ex(): prs = ReactionSystemWithConcentrationsParam() ent_with_conc = [("a", 3), ("b",2), ("c",1), ("h",1)] for ec in ent_with_conc: prs.add_bg_set_entity(ec) lda = prs.get_param("lda") prs.add_reaction([("a",1)],[("h",1)],[("b", 2)]) prs.add_reaction(lda,[("h",1)],[("c",1)]) ## ca = ContextAutomatonWithConcentrations(prs) ca.add_init_state("0") ca.add_state("1") ca.add_transition("0", [("a", 3)], "1") ca.add_transition("1", [], "1") ca.add_transition("1", [("h", 1)], "1") crprs = ReactionSystemWithAutomaton(prs, ca) crprs.show() pc = param_entity(lda, "a") == 0 f = ltl_F(bag_entity("h") == 0, "c") checker = SmtCheckerRSCParam(crprs, optimise=True) checker.check_rsltl(formulae_list=[f], param_constr=pc) if __name__ == "__main__": ex() # EOF