Commit 6fc0ecff authored by Robbert Krebbers's avatar Robbert Krebbers

Remove redundant cases in iIntro tactic.

parent 1805a435
...@@ -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 =>
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment