fact: Definition apply_rule {n:nat} (r: AllowModify n) (vlabs: Vector.t Label n) (pclab:Label) : option (option Label * Label) := let eval_var := mk_eval_var vlabs pclab in match eval_cond eval_var (allow r) with | false => None | true => let rpc := eval_expr eval_var (labResPC r) in let rres := match (labRes r) with | Some lres => Some (eval_expr eval_var lres) | None => None end in Some (rres, rpc) end.
imports: List Lia Utils Coq.Unicode.Utf8 Coq.Vectors.Vector