reduction.v 928 Bytes
Newer Older
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
From iris.bi Require Import bi.
From iris.proofmode Require Import base environments.

Declare Reduction pm_cbv := cbv [
  (* base *)
  pm_option_bind pm_from_option pm_option_fun
  base.beq base.ascii_beq base.string_beq base.positive_beq base.ident_beq
  (* environments *)
  env_lookup env_lookup_delete env_delete env_app env_replace
  env_dom env_intuitionistic env_spatial env_counter env_spatial_is_nil envs_dom
  envs_lookup envs_lookup_delete envs_delete envs_snoc envs_app
  envs_simple_replace envs_replace envs_split
  envs_clear_spatial envs_clear_persistent envs_incr_counter
  envs_split_go envs_split prop_of_env
  (* other modules. TODO: we should probably make copies of these,
     but what will that break? *)
  Pos.succ
].
Ltac pm_eval t :=
  let u := eval pm_cbv in t in
  u.
Ltac pm_reduce :=
  match goal with |- ?u => let v := pm_eval u in change v end.
Ltac pm_reflexivity := pm_reduce; exact eq_refl.