Skip to content

Commit 7270f8c

Browse files
committed
remove some edgy SMTs in Xreal and related
These might enable a version bump on some provers.
1 parent 7a566d6 commit 7270f8c

File tree

2 files changed

+11
-3
lines changed

2 files changed

+11
-3
lines changed

examples/ehoare/adversary.ec

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -91,7 +91,7 @@ proof.
9191
+ auto => &hr /=.
9292
case: (O.c{hr} = Q) => [ -> /= | *].
9393
+ rewrite Ep_mu (:(fun (a : r) => a \in O.log{hr}) = mem O.log{hr}); 1: by auto.
94-
smt(mu_mem_le_mu1 size_ge0 mu_bounded dr_mu1).
94+
rewrite -of_realM /=; smt(mu_mem_le_mu1 size_ge0 eps_ge0 dr_mu1).
9595
case: (Q < O.c{hr}); by smt().
9696
auto => &hr /=; apply xle_cxr => *; split; 1:smt().
9797
have -> /=: (Q < O.c{hr} + 1) = (Q <= O.c{hr}) by smt().

theories/datatypes/Xreal.ec

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -354,7 +354,11 @@ proof. by move=> /(xler_addr z) h1 /(xler_addl y); apply xle_trans. qed.
354354
lemma xler_pmul2l (x:realp) : 0%rp < x =>
355355
forall (y z : xreal),
356356
rp x * y <= rp x * z <=> y <= z.
357-
proof. move=> hx y z; case: z => // z; case: y => // y; smt(to_realP). qed.
357+
proof.
358+
rewrite (of_realK 0%r) //.
359+
move=> hx y z; case: z => // z; case: y => // y.
360+
by rewrite /= -!to_realM !to_realM ler_pmul2l.
361+
qed.
358362

359363
lemma xler_wpmul2l (x : realp) (y z : xreal) :
360364
y <= z => x%xr * y <= x%xr * z.
@@ -363,7 +367,11 @@ proof. case: z => // z; case: y => // y; smt(to_realP). qed.
363367
lemma xler_pmul2r (x:realp) : 0%rp < x =>
364368
forall (y z : xreal),
365369
y * rp x <= z * rp x <=> y <= z.
366-
proof. move=> hx y z; case: z => // z; case: y => // y; smt(to_realP). qed.
370+
proof.
371+
rewrite (of_realK 0%r) //.
372+
move=> hx y z; case: z => // z; case: y => // y.
373+
by rewrite /= -!to_realM !to_realM ler_pmul2r.
374+
qed.
367375

368376
lemma xler_wpmul2r (x : realp) (y z : xreal) :
369377
y <= z => y * x%xr <= z * x%xr.

0 commit comments

Comments
 (0)