Require Export Bmc.Core.
Definition forward_post (I : prop) (T : trans) (P : prop) (k: nat) : Prop :=
lasso_fwd I T k /\ safety_nth I T P k.
(* *)
Local Theorem case1 :
forall (I : prop) (T : trans) (P : prop) (k : nat),
forward_post I T P k ->
forall (i : nat), (i <= k) -> prop_nth_init_lf I T P i.
Local Lemma case2_1 :
forall (I : prop) (T : trans) (P : prop) (i k : nat),
i > k -> lasso_fwd I T k -> prop_nth_init_lf I T P i.
Local Lemma case2 :
forall (I : prop) (T : trans) (P : prop) (k : nat),
forward_post I T P k ->
forall (i : nat), (i > k) -> prop_nth_init_lf I T P i.
(**)
Require Export Bmc.LoopFree.
(**)
Require Export Bmc.CoreConj.
Definition forward_post_conj (I : prop) (T : trans) (P : prop) (k: nat) : Prop :=
lasso_fwd_conj I T k /\ safety_nth_conj I T P k.

Lemma foreward_post_conj_eq :
forall (I:prop) (T:trans) (P:prop) (k:nat),
forward_post I T P k <-> forward_post_conj I T P k.