Skip to content

Commit 6782d13

Browse files
committed
cleaning
1 parent e8ee334 commit 6782d13

File tree

4 files changed

+105
-145
lines changed

4 files changed

+105
-145
lines changed

theories/lang_syntax.v

Lines changed: 13 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -696,21 +696,20 @@ move=> /andP[x0 x1]; rewrite ler_norml; apply/andP; split.
696696
by rewrite lerBlDr lerDl.
697697
Qed.
698698

699-
Lemma beta_nat_bernE a' b' U : (a > 0)%N -> (b > 0)%N ->
699+
Lemma beta_nat_bernoulliE a' b' U : (a > 0)%N -> (b > 0)%N ->
700700
beta_nat_bernoulli a' b' U = bernoulli (div_beta_nat_norm a' b') U.
701701
Proof.
702702
move=> a0 b0.
703703
rewrite /beta_nat_bernoulli.
704704
under eq_integral => x.
705705
rewrite inE/= in_itv/= => x01.
706-
rewrite bernoulliE_ext/= ?ubeta_nat_pdf_ge0 ?ubeta_nat_pdf_le1//.
706+
rewrite bernoulliE/= ?ubeta_nat_pdf_ge0 ?ubeta_nat_pdf_le1//.
707707
over.
708708
rewrite /=.
709-
rewrite [in RHS]bernoulliE_ext/= ?div_beta_nat_norm_ge0 ?div_beta_nat_norm_le1//=.
709+
rewrite [in RHS]bernoulliE/= ?div_beta_nat_norm_ge0 ?div_beta_nat_norm_le1//=.
710710
under eq_integral => x x01.
711-
rewrite /ubeta_nat_pdf.
712711
rewrite inE /=in_itv/= in x01.
713-
rewrite x01.
712+
rewrite /ubeta_nat_pdf x01.
714713
over.
715714
rewrite /=.
716715
rewrite integralD//=; last 2 first.
@@ -785,7 +784,8 @@ rewrite integralZl//=; last first.
785784
by rewrite mulr_ile1// ?exprn_ge0 ?exprn_ile1// ?onem_ge0 ?onem_le1//; case/andP: t01.
786785
- exact: integrableS (integrable_ubeta_nat_pdf _ _).
787786
transitivity (((beta_nat_norm a b)^-1)%:E *
788-
\int[mu]_(x in `[0%R, 1%R]) ((ubeta_nat_pdf a b x)%:E - (ubeta_nat_pdf (a+a') (b+b') x)%:E) : \bar R)%E.
787+
\int[mu]_(x in `[0%R, 1%R]) ((ubeta_nat_pdf a b x)%:E -
788+
(ubeta_nat_pdf (a + a') (b + b') x)%:E) : \bar R)%E.
789789
congr (_ * _)%E.
790790
apply: eq_integral => x x01.
791791
rewrite /onem -EFinM mulrBl mul1r EFinB.
@@ -1280,7 +1280,7 @@ Inductive evalD : forall g t, exp D g t ->
12801280

12811281
| eval_binomial g n e r mr :
12821282
e -D> r ; mr -> (exp_binomial n e : exp D g _) -D> binomial_prob n \o r ;
1283-
measurableT_comp (measurable_binomial_probT n) mr
1283+
measurableT_comp (measurable_binomial_prob n) mr
12841284

12851285
| eval_uniform g (a b : R) (ab : (a < b)%R) :
12861286
(exp_uniform a b ab : exp D g _) -D> cst (uniform_prob ab) ;
@@ -1858,7 +1858,7 @@ Proof. exact/execD_evalD/eval_bernoulli/evalD_execD. Qed.
18581858
Lemma execD_binomial g n e :
18591859
@execD g _ (exp_binomial n e) =
18601860
existT _ ((binomial_prob n : R -> pprobability nat R) \o projT1 (execD e))
1861-
(measurableT_comp (measurable_binomial_probT n) (projT2 (execD e))).
1861+
(measurableT_comp (measurable_binomial_prob n) (projT2 (execD e))).
18621862
Proof. exact/execD_evalD/eval_binomial/evalD_execD. Qed.
18631863

18641864
Lemma execD_uniform g a b ab0 :
@@ -1926,10 +1926,13 @@ Lemma congr_letinl {R : realType} g t1 t2 str (e1 e2 : @exp _ _ g t1)
19261926
@execP R g t2 [let str := e2 in e] x U.
19271927
Proof. by move=> + mU; move/eq_sfkernel => He; rewrite !execP_letin He. Qed.
19281928

1929-
Lemma congr_letinr {R : realType} g t1 t2 str (e : @exp _ _ _ t1) (e1 e2 : @exp _ _ (_ :: g) t2) x U :
1929+
Lemma congr_letinr {R : realType} g t1 t2 str (e : @exp _ _ _ t1)
1930+
(e1 e2 : @exp _ _ (_ :: g) t2) x U :
19301931
(forall y V, execP e1 (y, x) V = execP e2 (y, x) V) ->
19311932
@execP R g t2 [let str := e in e1] x U = @execP R g t2 [let str := e in e2] x U.
1932-
Proof. by move=> He; rewrite !execP_letin !letin'E; apply: eq_integral => ? _; exact: He. Qed.
1933+
Proof.
1934+
by move=> He; rewrite !execP_letin !letin'E; apply: eq_integral => ? _; exact: He.
1935+
Qed.
19331936

19341937
Lemma congr_normalize {R : realType} g t (e1 e2 : @exp R _ g t) :
19351938
(forall x U, execP e1 x U = execP e2 x U) ->

theories/lang_syntax_examples.v

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -277,7 +277,7 @@ rewrite ger0_norm//.
277277
rewrite !integral_dirac//= !diracT !mul1e ger0_norm//.
278278
rewrite exp_var'E (execD_var_erefl "x")/=.
279279
rewrite !indicT/= !mulr1.
280-
rewrite bernoulliE_ext//=; last lra.
280+
rewrite bernoulliE//=; last lra.
281281
by rewrite muleDl//; congr (_ + _)%E;
282282
rewrite -!EFinM; congr (_%:E);
283283
rewrite !indicE /onem /=; case: (_ \in _); field.
@@ -317,7 +317,7 @@ rewrite !ge0_integral_mscale//=.
317317
rewrite ger0_norm//.
318318
rewrite !integral_dirac//= !diracT !mul1e ger0_norm//.
319319
rewrite exp_var'E (execD_var_erefl "x")/=.
320-
rewrite bernoulliE_ext//=; last lra.
320+
rewrite bernoulliE//=; last lra.
321321
rewrite !mul1r.
322322
rewrite muleDl//; congr (_ + _)%E;
323323
rewrite -!EFinM;
@@ -361,7 +361,7 @@ rewrite !letin'E/= !iteE/=.
361361
rewrite !ge0_integral_mscale//=.
362362
rewrite ger0_norm//.
363363
rewrite !integral_dirac//= !diracT !mul1e ger0_norm//.
364-
rewrite bernoulliE_ext//=; last lra.
364+
rewrite bernoulliE//=; last lra.
365365
rewrite muleDl//; congr (_ + _)%E;
366366
rewrite -!EFinM;
367367
congr (_%:E);
@@ -648,7 +648,7 @@ transitivity (beta_nat_bernoulli 6 4 1 0 U : \bar R).
648648
by rewrite expr0 expr1 mulr1.
649649
rewrite !mul0r !mule0.
650650
by case: ifPn.
651-
rewrite beta_nat_bernE// !bernoulliE_ext//=; last 2 first.
651+
rewrite beta_nat_bernoulliE// !bernoulliE//=; last 2 first.
652652
lra.
653653
by rewrite div_beta_nat_norm_ge0 div_beta_nat_norm_le1.
654654
congr (_ * _ + _ * _)%:E.

theories/lang_syntax_table_game.v

Lines changed: 13 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ Require Import prob_lang lang_syntax_util lang_syntax lang_syntax_examples.
99
From mathcomp Require Import ring lra.
1010

1111
(**md**************************************************************************)
12-
(* # Edd's table game example *)
12+
(* # Eddy's table game example *)
1313
(* *)
1414
(* ref: *)
1515
(* - Chung-chieh Shan, Equational reasoning for probabilistic programming, *)
@@ -276,7 +276,7 @@ rewrite (@execD_bin _ _ binop_minus) !execD_real/= !execD_nat.
276276
rewrite !exp_var'E !(execD_var_erefl "p") !(execD_var_erefl "a2")/=.
277277
rewrite !letin'E/=.
278278
move: r01 => /andP[r0 r1].
279-
by apply/integral_binomial_bernoulli/andP.
279+
by apply/integral_binomial_prob/andP.
280280
Qed.
281281

282282
Lemma casino12 : execD casino1 = execD casino2.
@@ -443,7 +443,7 @@ transitivity (\int[beta_nat 6 4]_(y in `[0%R, 1%R]%classic : set R)
443443
rewrite patchE; case: ifPn => //.
444444
rewrite /beta_nat_pdf /ubeta_nat_pdf notin_setE/= in_itv/= => /negP/negbTE ->.
445445
by rewrite mul0r mule0.
446-
have := (@beta_nat_bernE R 6 4 0 3 U) isT isT.
446+
have := (@beta_nat_bernoulliE R 6 4 0 3 U) isT isT.
447447
rewrite /beta_nat_bernoulli /ubeta_nat_pdf /=.
448448
under eq_integral.
449449
move=> x.
@@ -468,7 +468,7 @@ have f1 x : x \in (`[0%R, 1%R]%classic : set R) -> (f x <= 1)%R.
468468
by move => /f01/andP[].
469469
under eq_integral => x.
470470
move=> x01.
471-
rewrite bernoulliE_ext//=; last first.
471+
rewrite bernoulliE//=; last first.
472472
by rewrite subr_ge0 f1//= lerBlDr addrC -lerBlDr subrr f0.
473473
over.
474474
rewrite /=.
@@ -501,8 +501,7 @@ rewrite [X in _ + X = _]ge0_integralZr//=; last 2 first.
501501
by apply/EFin_measurable_fun; exact: measurable_beta_nat_pdf.
502502
by move=> x x01; rewrite mule_ge0// lee_fin// ?f0// ?inE// beta_nat_pdf_ge0.
503503
under [in RHS]eq_integral => x x01.
504-
rewrite bernoulliE_ext//=; last first.
505-
by rewrite f0//= f1.
504+
rewrite bernoulliE//=; last by rewrite f0//= f1.
506505
rewrite muleDl//.
507506
over.
508507
rewrite /= ge0_integralD//=; last 4 first.
@@ -653,7 +652,7 @@ rewrite (@execD_bin _ _ binop_minus) execD_pow/= (@execD_bin _ _ binop_minus).
653652
rewrite !execD_real/= exp_var'E (execD_var_erefl "p")/=.
654653
transitivity (\int[beta_nat 6 4]_y bernoulli (1 - (1 - y) ^+ 3) U : \bar R)%E.
655654
by rewrite /beta_nat_bernoulli !letin'E/= /onem.
656-
rewrite bernoulliE_ext//=; last lra.
655+
rewrite bernoulliE//=; last lra.
657656
rewrite integral_beta_nat//; last first.
658657
by have := @integral_beta_bernoulli_onem_lty R _ _ _ U.
659658
apply: (measurableT_comp (measurable_bernoulli2 _)) => //.
@@ -678,28 +677,17 @@ rewrite (@integral_bernoulli_beta_nat_pdf (fun x => (1 - x) ^+ 3)%R U (1 / 11))/
678677
rewrite [RHS]integral_beta_nat//; last 2 first.
679678
apply: (measurableT_comp (measurable_bernoulli2 _)) => //.
680679
apply: measurable_fun_if => //.
681-
apply: measurable_and => //.
682-
apply: (measurable_fun_bool true) => //=.
683-
rewrite (_ : _ @^-1` _ = `[0%R, +oo[%classic)//.
684-
by apply/seteqP; split => [z|z] /=; rewrite in_itv/= andbT.
685-
apply: (measurable_fun_bool true) => //=.
686-
by rewrite (_ : _ @^-1` _ = `]-oo, 1%R]%classic).
680+
by apply: measurable_and => //; exact: measurable_fun_ler.
687681
apply: measurable_funTS; apply: measurable_funM => //.
688-
apply: measurable_fun_pow => //.
689-
by apply: measurable_funB => //.
682+
by apply: measurable_fun_pow => //; exact: measurable_funB.
690683
rewrite (le_lt_trans _ (integral_beta_bernoulli_expn_lty 3 6 4 U))//.
691684
rewrite integral_mkcond /=; apply: ge0_le_integral => //=.
692685
by move=> z _; rewrite patchE expr0 mul1r; case: ifPn.
693686
apply: (measurable_restrict _ _ _ _).1 => //.
694687
apply: measurable_funTS; apply: measurableT_comp => //=.
695688
apply: (measurableT_comp (measurable_bernoulli2 _)) => //=.
696689
apply: measurable_fun_if => //=.
697-
apply: measurable_and => //.
698-
apply: (measurable_fun_bool true) => //=.
699-
rewrite (_ : _ @^-1` _ = `[0%R, +oo[%classic)//.
700-
by apply/seteqP; split => [z|z] /=; rewrite in_itv/= andbT.
701-
apply: (measurable_fun_bool true) => //=.
702-
by rewrite (_ : _ @^-1` _ = `]-oo, 1%R]%classic).
690+
by apply: measurable_and => //; exact: measurable_fun_ler.
703691
apply: measurable_funTS; apply: measurable_funM => //.
704692
by apply: measurable_fun_pow => //; exact: measurable_funB.
705693
by apply/measurableT_comp => //; exact: measurable_bernoulli_expn.
@@ -709,7 +697,7 @@ rewrite (@integral_bernoulli_beta_nat_pdf (fun x => (1 - x) ^+ 3)%R U (1 / 11))/
709697
apply: eq_integral => z z01.
710698
rewrite inE/= in_itv/= in z01.
711699
by rewrite z01 expr0 mul1r.
712-
rewrite beta_nat_bernE//= bernoulliE_ext//=; last first.
700+
rewrite beta_nat_bernoulliE//= bernoulliE//=; last first.
713701
by rewrite div_beta_nat_norm_ge0// div_beta_nat_norm_le1.
714702
rewrite probability_setT.
715703
by congr (_ * _ + _ * _)%:E; rewrite /onem;
@@ -730,20 +718,20 @@ rewrite !execP_sample !execD_bernoulli !execD_real/=.
730718
apply: funext=> x.
731719
apply: eq_probability=> /= y.
732720
rewrite !normalizeE/=.
733-
rewrite !bernoulliE_ext//=; [|lra..].
721+
rewrite !bernoulliE//=; [|lra..].
734722
rewrite !diracT !mule1 -EFinD add_onemK onee_eq0/=.
735723
rewrite !letin'E.
736724
under eq_integral.
737725
move=> x0 _ /=.
738-
rewrite !bernoulliE_ext//=; [|lra..].
726+
rewrite !bernoulliE//=; [|lra..].
739727
rewrite !diracT !mule1 -EFinD add_onemK.
740728
over.
741729
rewrite !ge0_integral_mscale//= (ger0_norm (ltW p0))//.
742730
rewrite integral_dirac// !diracT !indicT /= !mule1.
743731
rewrite gt_eqF ?lte_fin//=.
744732
rewrite integral_dirac//= diracT !mul1e !mulr1.
745733
rewrite addrCA subrr addr0 invr1 mule1.
746-
rewrite !bernoulliE_ext//=; [|lra..].
734+
rewrite !bernoulliE//=; [|lra..].
747735
by rewrite muleAC -EFinM divff// ?gt_eqF// mul1r EFinD.
748736
Qed.
749737

0 commit comments

Comments
 (0)