aboutsummaryrefslogtreecommitdiffstats
path: root/src/hls/GiblePargenproofCommon.v
diff options
context:
space:
mode:
Diffstat (limited to 'src/hls/GiblePargenproofCommon.v')
-rw-r--r--src/hls/GiblePargenproofCommon.v15
1 files changed, 15 insertions, 0 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.