Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add states natively to execution monad #3

Draft
wants to merge 17 commits into
base: main
Choose a base branch
from
Draft
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
Add CDestruct instances
Nils-Lauermann committed Mar 21, 2025
commit 0bbdae41b2f7efa4cefae1f33705cbe38722f8c1
7 changes: 7 additions & 0 deletions Common/CDestruct.v
Original file line number Diff line number Diff line change
@@ -291,6 +291,9 @@ Global Hint Extern 3 (ObvTrue _) =>
Global Hint Extern 4 (ObvTrue _) =>
constructor; symmetry; assumption : typeclass_instances.

#[global] Instance obv_true_not_False : ObvTrue (¬ False).
Proof. now tcclean. Qed.

(** * CDestruct
See the top of the file comment for details about what [cdestruct] does. *)
@@ -884,6 +887,10 @@ Instance cdestruct_not_or_and b P Q :
CDestrSimpl b (¬ (P ∨ Q)) (¬ P ∧ ¬ Q).
Proof. tcclean. naive_solver. Qed.

Instance cdestruct_is_Some {A} (x : option A) :
CDestrSimpl false (is_Some x) (∃ y, x = Some y).
Proof. tcclean. naive_solver. Qed.

Instance cdestruct_or_False_l b P :
CDestrSimpl b (False ∨ P) P.
Proof. tcclean. naive_solver. Qed.