I want to find the weakest condition in action and post position using z3py.
The use of strategy But when Is this the best way to find the most vulnerable precondition? I have tried many ways, but it is new to Z3 and it is not able to understand which approach is to be taken or how to implement it. Yes, Another option is to use N = N + 1 and post status
N = 5 5 will be the most vulnerable pre-condition N == 4 given the action.
hal-eq This approach works for the terms of certain terms, but not others. When using post status,
N & lt; 5 I get
[[no (4 = l =; n =)]] .
N == 5 is using
[[]] , when I
N == 4 needed. N = int ('N') after N # = N2 = Int ('N2') # N Action from weak pre-condition Goyle = target () # 'N2 == N + 1 'Action #' N2 == 5 'post position weak precondition goyle.ed (N2 == N + 1, N2 == 5) T = Wright (' Hull-AQ ') wp = T (weak PreconditionGoyle) Print (WP)
hal-eq can be used to end equality The problem is that we have no control on which equality will end. Another option is to use the
qe (quantifier elimination) example is also available. N = Int ('N') # N after action # N First action weak precondition Goal = Goal
N2 = Int ('N2') () # 'N2 == N + 1' Action # 'N2 == 5' Post Status. Weak prediction Goal.add (present ([N2], and (N2 == N + 1, N2 == 5)) T = Tip ('qi') wp = t (weak pledge round) print (wp) < / Code>
hal-eqs , but the "guard" equation that we do not want to terminate, we have a supporting point
guard can be used to protect equations. Here is an example (online also available) Of course, we want to eliminate the
guard from the result. A will have to pass a second.
N2 = Int ('Action Guard = Function (' guard ', ballstar), Bolsert ()) Weak counterparty Goal.add Goal.adding the position of the goal = 'N2 == 5' post # N 'action #' N2 == 5 'after N = int (' n ') # n before goal = target =' N2 == N + 1 ' (N2 == N + 1, Guard (N2 == 5)) T = Tip ('hull-eqs') wp = T (weak follow-up goal) print (wp)
No comments:
Post a Comment