diff options
author | Yann Herklotz <git@yannherklotz.com> | 2023-05-28 17:35:38 +0100 |
---|---|---|
committer | Yann Herklotz <git@yannherklotz.com> | 2023-05-28 17:35:38 +0100 |
commit | 4917816d72d131cc0c3a10c00648a5df354e7500 (patch) | |
tree | d89e4b4e18e797e9a794a34f76349992974db2e5 | |
parent | 3cca0fa62b1b78ca0df38b539d88704b26b21645 (diff) | |
download | vericert-4917816d72d131cc0c3a10c00648a5df354e7500.tar.gz vericert-4917816d72d131cc0c3a10c00648a5df354e7500.zip |
Work on forward proofs
-rw-r--r-- | src/hls/GiblePargenproofCommon.v | 15 | ||||
-rw-r--r-- | src/hls/GiblePargenproofForward.v | 4 |
2 files changed, 18 insertions, 1 deletions
diff --git a/src/hls/GiblePargenproofCommon.v b/src/hls/GiblePargenproofCommon.v index 22b5978..2dbdf12 100644 --- a/src/hls/GiblePargenproofCommon.v +++ b/src/hls/GiblePargenproofCommon.v @@ -221,6 +221,21 @@ Proof. unfold predicated_not_inP; intros. eapply H. econstructor. right; eauto. Qed. +Lemma predicated_not_inP_equiv : + forall A (a: predicated A) p, + predicated_not_in p a = true -> predicated_not_inP p a. +Proof. + induction a. + - intros. cbn in *. unfold predicated_not_inP; intros. + unfold not; intros. inv H0. cbn in *. + destruct (predin peq p op) eqn:?; try discriminate. eapply predin_PredIn in H1. + rewrite H1 in Heqb. discriminate. + - intros. cbn in H. eapply andb_prop in H. inv H. eapply IHa in H0. + unfold predicated_not_inP in *; intros. inv H. inv H3; cbn in *; eauto. + unfold not; intros. eapply predin_PredIn in H. now rewrite H in H1. +Qed. + + Lemma truthy_dec: forall ps a, truthy ps a \/ falsy ps a. Proof. diff --git a/src/hls/GiblePargenproofForward.v b/src/hls/GiblePargenproofForward.v index 6411351..cf81802 100644 --- a/src/hls/GiblePargenproofForward.v +++ b/src/hls/GiblePargenproofForward.v @@ -324,7 +324,9 @@ all be evaluable. forall pred f, predicated_not_in_forest pred f = true -> forall x, predicated_not_inP pred (f #r x). - Proof. Admitted. + Proof. + unfold predicated_not_in_forest, predicated_not_in_pred_expr; intros. + eapply andb_prop in H. inv H. Lemma pred_not_in_forest_exitP : forall pred f, |