diff options
author | Michalis Pardalos <m.pardalos@gmail.com> | 2021-06-10 22:01:26 +0100 |
---|---|---|
committer | Michalis Pardalos <m.pardalos@gmail.com> | 2021-06-10 22:01:26 +0100 |
commit | f7616136f1a2f3561500b1c28219ae725c4cda17 (patch) | |
tree | fed32ce1b6ff600883d5735891de7d2119f38b7a /src/common | |
parent | 6957832da6522c7099b9554bfc68b67e0fb39444 (diff) | |
download | vericert-f7616136f1a2f3561500b1c28219ae725c4cda17.tar.gz vericert-f7616136f1a2f3561500b1c28219ae725c4cda17.zip |
Remove all Admitted from top-level Compiler.v
Diffstat (limited to 'src/common')
-rw-r--r-- | src/common/Vericertlib.v | 17 |
1 files changed, 10 insertions, 7 deletions
diff --git a/src/common/Vericertlib.v b/src/common/Vericertlib.v index 33ddb71..0fae032 100644 --- a/src/common/Vericertlib.v +++ b/src/common/Vericertlib.v @@ -85,14 +85,17 @@ Ltac solve_by_invert := solve_by_inverts 1. Ltac invert x := inversion x; subst; clear x. (** For a hypothesis of a forall-type, instantiate every variable to a fresh existential *) +Ltac insterU1 H := + match type of H with + | forall x : ?T, _ => + let x := fresh "x" in + evar (x : T); + let x' := eval unfold x in x in + clear x; specialize (H x') + end. + Ltac insterU H := - repeat match type of H with - | forall x : ?T, _ => - let x := fresh "x" in - evar (x : T); - let x' := eval unfold x in x in - clear x; specialize (H x') - end. + repeat (insterU1 H). Ltac destruct_match := match goal with |