(** ** Preservation of a property over solutions *)

Theorem fixpoint_invariant:
forall ep ev
(P: L.t -> Prop)
(P_bot: P L.bot)
(P_lub: forall x y, P x -> P y -> P (L.lub x y))
(P_transf: forall pc instr x, code!pc = Some instr -> P x -> P (transf pc x))
(P_entrypoint: P ev)
res pc,
fixpoint ep ev = Some res ->
P res!!pc.