Require Export Bmc.Core.
Definition backward_post (I : prop) (T : trans) (P : prop) (k: nat) : Prop :=
lasso_bwd T P k /\ safety_nth I T P k.
(* *)
Local Theorem case1 :
forall (I : prop) (T : trans) (P : prop) (k : nat),
backward_post I T P k ->
forall (i : nat), (i <= k) -> prop_nth_init_lf I T P i.
Local Lemma case2_2' : forall (T : trans) (P : prop) (i k : nat),
i > k ->
( forall ss : sseq, (loop_free T ss 0 k -> P ss.[k]) ) ->
forall ss : sseq, (loop_free T ss (i-k) k -> P ss.[i]).
Local Lemma case2_2 : forall (I : prop) (T : trans) (P : prop) (i k : nat),
i > k ->
lasso_bwd T P k ->
prop_nth_init_lf I T P i.
Local Lemma case2 :
forall (I : prop) (T : trans) (P : prop) (k : nat),
backward_post I T P k ->
forall (i : nat), (i > k) -> prop_nth_init_lf I T P i.
(**)
Require Export Bmc.LoopFree.

Theorem soundness_backward1 :
forall (I : prop) (T : trans) (P : prop),
( exists k, backward_post I T P k ) ->
forall (i : nat), prop_nth_init I T P i.