Skip to content

Commit f422eb7

Browse files
committed
Warn on useless unfolds by default
1 parent 1aec83f commit f422eb7

7 files changed

Lines changed: 11 additions & 25 deletions

File tree

src/ecHiGoal.ml

Lines changed: 5 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,6 @@ type ttenv = {
3333
tt_implicits : bool;
3434
tt_oldip : bool;
3535
tt_redlogic : bool;
36-
tt_und_delta : bool;
3736
}
3837

3938
type engine = ptactic_core -> FApi.backward
@@ -671,7 +670,7 @@ let process_rewrite1_core
671670
tc_error !!tc "context variable does not appear in the r-pattern"
672671

673672
(* -------------------------------------------------------------------- *)
674-
let process_delta ~und_delta ?target ((s :rwside), o, p) tc =
673+
let process_delta ?target ((s :rwside), o, p) tc =
675674
let env, hyps, concl = FApi.tc1_eflat tc in
676675
let o = norm_rwocc o in
677676

@@ -693,10 +692,8 @@ let process_delta ~und_delta ?target ((s :rwside), o, p) tc =
693692
EcReduction.delta_h = check_id; } in
694693
let redform = EcReduction.simplify ri hyps target in
695694

696-
if und_delta then begin
697-
if EcFol.f_equal target redform then
698-
EcEnv.notify env `Warning "unused unfold: /%s" x
699-
end;
695+
if EcFol.f_equal target redform then
696+
EcEnv.notify env `Warning "unused unfold: /%s" x;
700697

701698
t_change ~ri:{ ri with eta = true; beta = true; } ?target:idtg redform tc
702699

@@ -823,7 +820,6 @@ let process_delta ~und_delta ?target ((s :rwside), o, p) tc =
823820
(* -------------------------------------------------------------------- *)
824821
let process_rewrite1_r ttenv ?target ri tc =
825822
let implicits = ttenv.tt_implicits in
826-
let und_delta = ttenv.tt_und_delta in
827823

828824
match unloc ri with
829825
| RWDone simpl ->
@@ -846,7 +842,7 @@ let process_rewrite1_r ttenv ?target ri tc =
846842
tc_error !!tc "cannot use pattern selection in delta-rewrite rules";
847843

848844
let do1 tc =
849-
process_delta ~und_delta ?target (rwopt.side, rwopt.occurrence, p) tc in
845+
process_delta ?target (rwopt.side, rwopt.occurrence, p) tc in
850846

851847
match rwopt.repeat with
852848
| None -> do1 tc
@@ -1609,7 +1605,7 @@ let rec process_mintros_1 ?(cf = true) ttenv pis gs =
16091605
in t_seqs [t_intros_i [h]; rwt; t_clear h] tc
16101606

16111607
and intro1_unfold (_ : ST.state) (s, o) p tc =
1612-
process_delta ~und_delta:ttenv.tt_und_delta (s, o, p) tc
1608+
process_delta (s, o, p) tc
16131609

16141610
and intro1_view (_ : ST.state) pe tc =
16151611
process_view1 pe tc

src/ecHiGoal.mli

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,6 @@ type ttenv = {
1414
tt_implicits : bool;
1515
tt_oldip : bool;
1616
tt_redlogic : bool;
17-
tt_und_delta : bool;
1817
}
1918

2019
type engine = ptactic_core -> backward
@@ -80,7 +79,7 @@ val process_clear : clear_info -> backward
8079
val process_smt : ?loc:EcLocation.t -> ttenv -> pprover_infos option -> backward
8180
val process_coq : loc:EcLocation.t -> name:string -> ttenv -> EcProvers.coq_mode option -> pprover_infos -> backward
8281
val process_apply : implicits:bool -> apply_t * prevert option -> backward
83-
val process_delta : und_delta:bool -> ?target:psymbol -> (rwside * rwocc * pformula) -> backward
82+
val process_delta : ?target:psymbol -> (rwside * rwocc * pformula) -> backward
8483
val process_rewrite : ttenv -> ?target:psymbol -> rwarg list -> backward
8584
val process_subst : pformula list -> backward
8685
val process_cut : ?mode:cutmode -> engine -> ttenv -> cut_t -> backward

src/ecScope.ml

Lines changed: 1 addition & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -238,13 +238,11 @@ module KnownFlags = struct
238238
let implicits = "implicits"
239239
let oldip = "oldip"
240240
let redlogic = "redlogic"
241-
let und_delta = "und_delta"
242241

243242
let flags = [
244243
(implicits, false);
245244
(oldip , false);
246245
(redlogic , true );
247-
(und_delta, false);
248246
]
249247
end
250248

@@ -546,12 +544,6 @@ module Options = struct
546544

547545
let set_redlogic scope value =
548546
set scope KnownFlags.redlogic value
549-
550-
let get_und_delta scope =
551-
get scope KnownFlags.und_delta
552-
553-
let set_und_delta scope value =
554-
set scope KnownFlags.und_delta value
555547
end
556548

557549
(* -------------------------------------------------------------------- *)
@@ -857,8 +849,7 @@ module Tactics = struct
857849
EcHiGoal.tt_smtmode = htmode;
858850
EcHiGoal.tt_implicits = Options.get_implicits scope;
859851
EcHiGoal.tt_oldip = Options.get_oldip scope;
860-
EcHiGoal.tt_redlogic = Options.get_redlogic scope;
861-
EcHiGoal.tt_und_delta = Options.get_und_delta scope; } in
852+
EcHiGoal.tt_redlogic = Options.get_redlogic scope; } in
862853

863854
let bullets =
864855
try omap (EcBullets.open_phrase ~bullet juc) pac.puc_bullets

theories/analysis/RealSeries.ec

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1208,7 +1208,7 @@ rewrite -(@eq_sum (G (x :: r) (x :: r))) => /= [sg @/G|].
12081208
rewrite -(@eq_sum (fun sg => F x u * G (x :: r) r sg)).
12091209
- by move=> sg /= @/G; case _: (_ /\ _).
12101210
rewrite sumZ; congr => @/G @/M => {S P M G}.
1211-
rewrite -(@sum_reindex (swap_codom x witness u)) /(\o) /=.
1211+
rewrite -(@sum_reindex (swap_codom x witness u)) 3:/(\o) /=.
12121212
- by apply: bij_swap_codom.
12131213
- by apply/summable_cond_fin/finiteIr/finite_fixfinfun; apply/finite_mem.
12141214
apply: eq_sum=> /= sg; congr; last first.

theories/datatypes/BitEncoding.ec

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -815,7 +815,7 @@ move=> s1 s2; rewrite mulzDl /= [_ + n]addrC => szE1 szE2.
815815
have := size_eqD _ _ _ _ _ szE1; ~-1: move=> //#.
816816
have := size_eqD _ _ _ _ _ szE2; ~-1: move=> //#.
817817
case=> [s1a s1b] [# sz1a sz1b ->] [s2a s2b] [# sz2a sz2b ->].
818-
rewrite !mkseqSr /(\o) //= !drop0 !take_catl ?(sz1a, sz2a) //.
818+
rewrite !mkseqSr //= /(\o) !drop0 !take_catl ?(sz1a, sz2a) //.
819819
rewrite !take_oversize ?(sz1a, sz2a) // => -[<-].
820820
move=> eq_tl; congr; apply: ih => //.
821821
apply: (eq_trans _ _ (eq_trans _ eq_tl _)).

theories/datatypes/FMap.ec

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -547,7 +547,7 @@ qed.
547547
548548
lemma offset_get s (e: 'a): (offset s).[e] = if e \in s then Some () else None.
549549
proof.
550-
rewrite getE /ofset ofmapK.
550+
rewrite getE ofmapK.
551551
- move: (FSet.finite_mem s).
552552
apply/eq_ind/fun_ext => y.
553553
rewrite offunE /#.

theories/structure/Finite.ec

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -256,7 +256,7 @@ lemma finite_fixfinfun ['a 'b] dom codom :
256256
=> is_finite<:'b> codom
257257
=> is_finite<: 'a -> 'b> (fixfinfun dom codom).
258258
proof.
259-
case=> [sa [uqa @/predT /= ha]] [sb [uqb @/predT /= hb]]; apply/finiteP.
259+
case=> [sa [uqa /= ha]] [sb [uqb /= hb]]; apply/finiteP.
260260
pose F (s : ('a * 'b) list) (a : 'a) := odflt witness (assoc s a).
261261
exists (map F (fingraph sa sb)) => /= f hfix.
262262
apply/mapP; pose s := map (fun a => (a, f a)) sa.

0 commit comments

Comments
 (0)