Skip to content

Commit ce0b897

Browse files
committed
minor fixes
1 parent 0a94990 commit ce0b897

File tree

2 files changed

+26
-55
lines changed

2 files changed

+26
-55
lines changed

theories/lang_syntax_examples.v

Lines changed: 16 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -209,11 +209,11 @@ Definition sample_pair_syntax : exp _ [::] _ :=
209209
Lemma exec_sample_pair0 (A : set (bool * bool)) :
210210
@execP R [::] _ sample_pair_syntax0 tt A =
211211
((1 / 2)%:E *
212-
((1 / 3)%:E * ((true, true) \in A)%:R%:E +
213-
(1 - 1 / 3)%:E * ((true, false) \in A)%:R%:E) +
212+
((1 / 3)%:E * \d_(true, true) A +
213+
(1 - 1 / 3)%:E * \d_(true, false) A) +
214214
(1 - 1 / 2)%:E *
215-
((1 / 3)%:E * ((false, true) \in A)%:R%:E +
216-
(1 - 1 / 3)%:E * ((false, false) \in A)%:R%:E))%E.
215+
((1 / 3)%:E * \d_(false, true) A +
216+
(1 - 1 / 3)%:E * \d_(false, false) A))%E.
217217
Proof.
218218
rewrite !execP_letin !execP_sample !execD_bernoulli execP_return /=.
219219
rewrite execD_pair !exp_var'E (execD_var_erefl "x") (execD_var_erefl "y") /=.
@@ -226,31 +226,31 @@ Qed.
226226
Lemma exec_sample_pair0_TandT :
227227
@execP R [::] _ sample_pair_syntax0 tt [set (true, true)] = (1 / 6)%:E.
228228
Proof.
229-
rewrite exec_sample_pair0 mem_set//; do 3 rewrite memNset//=.
229+
rewrite exec_sample_pair0 !diracE mem_set//; do 3 rewrite memNset//=.
230230
by rewrite /= !mule0 mule1 !add0e mule0 adde0; congr (_%:E); lra.
231231
Qed.
232232

233233
Lemma exec_sample_pair0_TandF :
234234
@execP R [::] _ sample_pair_syntax0 tt [set (true, false)] = (1 / 3)%:E.
235235
Proof.
236-
rewrite exec_sample_pair0 memNset// mem_set//; do 2 rewrite memNset//.
236+
rewrite exec_sample_pair0 !diracE memNset// mem_set//; do 2 rewrite memNset//.
237237
by rewrite /= !mule0 mule1 !add0e mule0 adde0; congr (_%:E); lra.
238238
Qed.
239239

240240
Lemma exec_sample_pair0_TandT' :
241241
@execP R [::] _ sample_pair_syntax0 tt [set p | p.1 && p.2] = (1 / 6)%:E.
242242
Proof.
243-
rewrite exec_sample_pair0 mem_set//; do 3 rewrite memNset//=.
243+
rewrite exec_sample_pair0 !diracE mem_set//; do 3 rewrite memNset//=.
244244
by rewrite /= !mule0 mule1 !add0e mule0 adde0; congr (_%:E); lra.
245245
Qed.
246246

247247
Lemma exec_sample_pair_TorT :
248248
(projT1 (execD sample_pair_syntax)) tt [set p | p.1 || p.2] = (2 / 3)%:E.
249249
Proof.
250250
rewrite execD_normalize_pt normalizeE/= exec_sample_pair0.
251-
do 4 rewrite mem_set//=.
251+
rewrite !diracE; do 4 rewrite mem_set//=.
252252
rewrite eqe ifF; last by apply/negbTE/negP => /orP[/eqP|//]; lra.
253-
rewrite exec_sample_pair0; do 3 rewrite mem_set//; rewrite memNset//=.
253+
rewrite exec_sample_pair0 !diracE; do 3 rewrite mem_set//; rewrite memNset//=.
254254
by rewrite !mule1; congr (_%:E); field.
255255
Qed.
256256

@@ -260,9 +260,8 @@ Definition sample_and_syntax0 : @exp R _ [::] _ :=
260260
return #{"x"} && #{"y"}].
261261

262262
Lemma exec_sample_and0 (A : set bool) :
263-
@execP R [::] _ sample_and_syntax0 tt A =
264-
((1 / 6)%:E * (true \in A)%:R%:E +
265-
(1 - 1 / 6)%:E * (false \in A)%:R%:E)%E.
263+
@execP R [::] _ sample_and_syntax0 tt A = ((1 / 6)%:E * \d_true A +
264+
(1 - 1 / 6)%:E * \d_false A)%E.
266265
Proof.
267266
rewrite !execP_letin !execP_sample !execD_bernoulli execP_return /=.
268267
rewrite (@execD_bin _ _ binop_and) !exp_var'E (execD_var_erefl "x") (execD_var_erefl "y") /=.
@@ -271,7 +270,7 @@ rewrite !integral_dirac//= !indicE !in_setT/= !mul1e.
271270
rewrite !letin'E !integral_measure_add//= !ge0_integral_mscale//= /onem.
272271
rewrite !integral_dirac//= !indicE !in_setT/= !mul1e !diracE.
273272
rewrite muleDr// -addeA; congr (_ + _)%E.
274-
by rewrite !muleA; congr (_%:E); congr (_ * _); field.
273+
by rewrite !muleA; congr (_%:E); congr (_ * _); field.
275274
rewrite -muleDl// !muleA -muleDl//.
276275
by congr (_%:E); congr (_ * _); field.
277276
Qed.
@@ -283,9 +282,8 @@ Definition sample_bernoulli_and3 : @exp R _ [::] _ :=
283282
return #{"x"} && #{"y"} && #{"z"}].
284283

285284
Lemma exec_sample_bernoulli_and3 t U :
286-
execP sample_bernoulli_and3 t U =
287-
((1 / 8)%:E * (true \in U)%:R%:E +
288-
(1 - 1 / 8)%:E * (false \in U)%:R%:E)%E.
285+
execP sample_bernoulli_and3 t U = ((1 / 8)%:E * \d_true U +
286+
(1 - 1 / 8)%:E * \d_false U)%E.
289287
Proof.
290288
rewrite !execP_letin !execP_sample !execD_bernoulli execP_return /=.
291289
rewrite !(@execD_bin _ _ binop_and) !exp_var'E.
@@ -307,25 +305,6 @@ Definition sample_add_syntax0 : @exp R _ [::] _ :=
307305
let "z" := Sample {exp_bernoulli (1 / 2)%:nng (p1S 1)} in
308306
return #{"x"} && #{"y"} && #{"z"}].
309307

310-
Lemma exec_sample_bernoulli_and3 t U :
311-
execP sample_bernoulli_and3 t U =
312-
((1 / 8)%:E * (true \in U)%:R%:E +
313-
(1 - 1 / 8)%:E * (false \in U)%:R%:E)%E.
314-
Proof.
315-
rewrite !execP_letin !execP_sample !execD_bernoulli execP_return /=.
316-
rewrite !(@execD_bin _ _ binop_and) !exp_var'E.
317-
rewrite (execD_var_erefl "x") (execD_var_erefl "y") (execD_var_erefl "z") /=.
318-
rewrite letin'E integral_measure_add//= !ge0_integral_mscale//= /onem.
319-
rewrite !integral_dirac//= !indicE !in_setT/= !mul1e.
320-
rewrite !letin'E !integral_measure_add//= !ge0_integral_mscale//= /onem.
321-
rewrite !integral_dirac//= !indicE !in_setT/= !mul1e.
322-
rewrite !letin'E !integral_measure_add//= !ge0_integral_mscale//= /onem.
323-
rewrite !integral_dirac//= !indicE !in_setT/= !mul1e !diracE.
324-
rewrite !muleDr// -!addeA.
325-
by congr (_ + _)%E; rewrite ?addeA !muleA -?muleDl//;
326-
congr (_ * _)%E; congr (_%:E); field.
327-
Qed.
328-
329308
End sample_pair.
330309

331310
Section bernoulli_examples.
@@ -447,8 +426,8 @@ under eq_integral.
447426
over.
448427
rewrite !integral_measure_add //=; last by move=> b _; rewrite integral_ge0.
449428
rewrite !ge0_integral_mscale //=; last 2 first.
450-
by move=> b _; rewrite integral_ge0.
451-
by move=> b _; rewrite integral_ge0.
429+
by move=> b _; exact: integral_ge0.
430+
by move=> b _; exact: integral_ge0.
452431
rewrite !integral_dirac// !indicE !in_setT !mul1e.
453432
rewrite iteE/= !ge0_integral_mscale//=.
454433
rewrite ger0_norm//.

theories/measure.v

Lines changed: 10 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1177,32 +1177,24 @@ Lemma measurable_and (f : T1 -> bool) (g : T1 -> bool) :
11771177
measurable_fun setT f -> measurable_fun setT g ->
11781178
measurable_fun setT (fun x => f x && g x).
11791179
Proof.
1180-
move=> mf mg.
1181-
apply: (@measurable_fun_bool _ _ true).
1180+
move=> mf mg; apply: (@measurable_fun_bool _ _ true).
11821181
rewrite [X in measurable X](_ : _ = f @^-1` [set true] `&` g @^-1` [set true]).
1183-
apply: measurableI.
1184-
rewrite -[X in measurable X]setTI.
1185-
exact: mf.
1186-
rewrite -[X in measurable X]setTI.
1187-
exact: mg.
1188-
apply/seteqP.
1189-
by split; move=> x/andP.
1182+
apply: measurableI.
1183+
- rewrite -[X in measurable X]setTI; exact: mf.
1184+
- rewrite -[X in measurable X]setTI; exact: mg.
1185+
by apply/seteqP; split => x /andP.
11901186
Qed.
11911187

11921188
Lemma measurable_or (f : T1 -> bool) (g : T1 -> bool) :
11931189
measurable_fun setT f -> measurable_fun setT g ->
11941190
measurable_fun setT (fun x => f x || g x).
11951191
Proof.
1196-
move=> mf mg.
1197-
apply: (@measurable_fun_bool _ _ true).
1192+
move=> mf mg; apply: (@measurable_fun_bool _ _ true).
11981193
rewrite [X in measurable X](_ : _ = f @^-1` [set true] `|` g @^-1` [set true]).
1199-
apply: measurableU.
1200-
rewrite -[X in measurable X]setTI.
1201-
exact: mf.
1202-
rewrite -[X in measurable X]setTI.
1203-
exact: mg.
1204-
apply/seteqP.
1205-
split; move=> x => /orP//.
1194+
apply: measurableU.
1195+
- rewrite -[X in measurable X]setTI; exact: mf.
1196+
- rewrite -[X in measurable X]setTI; exact: mg.
1197+
by apply/seteqP; split=> x /orP.
12061198
Qed.
12071199

12081200
End measurable_fun.

0 commit comments

Comments
 (0)