Skip to content
Snippets Groups Projects
Commit 6fc0ecff authored by Robbert Krebbers's avatar Robbert Krebbers
Browse files

Remove redundant cases in iIntro tactic.

parent 1805a435
No related branches found
No related tags found
No related merge requests found
...@@ -769,19 +769,21 @@ Tactic Notation "iIntros" constr(pat) := ...@@ -769,19 +769,21 @@ Tactic Notation "iIntros" constr(pat) :=
let rec go pats := let rec go pats :=
lazymatch pats with lazymatch pats with
| [] => idtac | [] => idtac
(* Optimizations to avoid generating fresh names *)
| IPureElim :: ?pats => iIntro (?); go pats | IPureElim :: ?pats => iIntro (?); go pats
| IAlwaysElim IAnom :: ?pats => let H := iFresh in iIntro #H; go pats
| IAnom :: ?pats => let H := iFresh in iIntro H; go pats
| IAlwaysElim (IName ?H) :: ?pats => iIntro #H; go pats | IAlwaysElim (IName ?H) :: ?pats => iIntro #H; go pats
| IName ?H :: ?pats => iIntro H; go pats | IName ?H :: ?pats => iIntro H; go pats
(* Introduction patterns that can only occur at the top-level *)
| IPureIntro :: ?pats => iPureIntro; go pats | IPureIntro :: ?pats => iPureIntro; go pats
| IAlwaysIntro :: ?pats => iAlways; go pats | IAlwaysIntro :: ?pats => iAlways; go pats
| IModalIntro :: ?pats => iModIntro; go pats | IModalIntro :: ?pats => iModIntro; go pats
| ISimpl :: ?pats => simpl; go pats
| IForall :: ?pats => repeat iIntroForall; go pats | IForall :: ?pats => repeat iIntroForall; go pats
| IAll :: ?pats => repeat (iIntroForall || iIntro); go pats | IAll :: ?pats => repeat (iIntroForall || iIntro); go pats
(* Clearing and simplifying introduction patterns *)
| ISimpl :: ?pats => simpl; go pats
| IClear ?H :: ?pats => iClear H; go pats | IClear ?H :: ?pats => iClear H; go pats
| IClearFrame ?H :: ?pats => iFrame H; go pats | IClearFrame ?H :: ?pats => iFrame H; go pats
(* Introduction + destruct *)
| IAlwaysElim ?pat :: ?pats => | IAlwaysElim ?pat :: ?pats =>
let H := iFresh in iIntro #H; iDestructHyp H as pat; go pats let H := iFresh in iIntro #H; iDestructHyp H as pat; go pats
| ?pat :: ?pats => | ?pat :: ?pats =>
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment