From Coq Require Import Reals Lra.
The type of positive real numbers.
Definition pos_R := {r : R | (r > 0)%R}. Definition weight_proj1_sig (w : pos_R) : R := proj1_sig w.
We can treat a positive real number as if it were an ordinary real number.
Coercion weight_proj1_sig : pos_R >-> R. Class Measurable (V : Type) : Type := weight : V -> pos_R. #[global] Hint Mode Measurable ! : typeclass_instances. Section sec_measurable_props. Context `{Measurable V} `{FinSet V Cv} . Definition sum_weights (l : Cv) : R := set_fold (fun v r => (proj1_sig (weight v) + r)%R) 0%R l. Definition sum_weights_list (vs : list V) := fold_right (fun v r => (proj1_sig (weight v) + r)%R) 0%R vs.V: Type
H: Measurable V
Cv: Type
H0: ElemOf V Cv
H1: Empty Cv
H2: Singleton V Cv
H3: Union Cv
H4: Intersection Cv
H5: Difference Cv
H6: Elements V Cv
EqDecision0: EqDecision V
H7: FinSet V Cv
l: Cvsum_weights l = sum_weights_list (elements l)done. Qed.V: Type
H: Measurable V
Cv: Type
H0: ElemOf V Cv
H1: Empty Cv
H2: Singleton V Cv
H3: Union Cv
H4: Intersection Cv
H5: Difference Cv
H6: Elements V Cv
EqDecision0: EqDecision V
H7: FinSet V Cv
l: Cvsum_weights l = sum_weights_list (elements l)V: Type
H: Measurable V
Cv: Type
H0: ElemOf V Cv
H1: Empty Cv
H2: Singleton V Cv
H3: Union Cv
H4: Intersection Cv
H5: Difference Cv
H6: Elements V Cv
EqDecision0: EqDecision V
H7: FinSet V Cvโ l : Cv, l โก โ โ sum_weights l = 0%RV: Type
H: Measurable V
Cv: Type
H0: ElemOf V Cv
H1: Empty Cv
H2: Singleton V Cv
H3: Union Cv
H4: Intersection Cv
H5: Difference Cv
H6: Elements V Cv
EqDecision0: EqDecision V
H7: FinSet V Cvโ l : Cv, l โก โ โ sum_weights l = 0%RV: Type
H: Measurable V
Cv: Type
H0: ElemOf V Cv
H1: Empty Cv
H2: Singleton V Cv
H3: Union Cv
H4: Intersection Cv
H5: Difference Cv
H6: Elements V Cv
EqDecision0: EqDecision V
H7: FinSet V Cv
l: Cv
Hl: l โก โsum_weights l = 0%Rby apply elements_empty_iff in Hl as ->. Qed.V: Type
H: Measurable V
Cv: Type
H0: ElemOf V Cv
H1: Empty Cv
H2: Singleton V Cv
H3: Union Cv
H4: Intersection Cv
H5: Difference Cv
H6: Elements V Cv
EqDecision0: EqDecision V
H7: FinSet V Cv
l: Cv
Hl: l โก โfoldr (ฮป (v : V) (r : R), (`(weight v) + r)%R) 0%R (elements l) = 0%RV: Type
H: Measurable V
Cv: Type
H0: ElemOf V Cv
H1: Empty Cv
H2: Singleton V Cv
H3: Union Cv
H4: Intersection Cv
H5: Difference Cv
H6: Elements V Cv
EqDecision0: EqDecision V
H7: FinSet V Cvโ x : V, sum_weights {[x]} = `(weight x)V: Type
H: Measurable V
Cv: Type
H0: ElemOf V Cv
H1: Empty Cv
H2: Singleton V Cv
H3: Union Cv
H4: Intersection Cv
H5: Difference Cv
H6: Elements V Cv
EqDecision0: EqDecision V
H7: FinSet V Cvโ x : V, sum_weights {[x]} = `(weight x)by rewrite set_fold_singleton; lra. Qed.V: Type
H: Measurable V
Cv: Type
H0: ElemOf V Cv
H1: Empty Cv
H2: Singleton V Cv
H3: Union Cv
H4: Intersection Cv
H5: Difference Cv
H6: Elements V Cv
EqDecision0: EqDecision V
H7: FinSet V Cv
x: Vset_fold (ฮป (v : V) (r : R), (`(weight v) + r)%R) 0%R {[x]} = `(weight x)V: Type
H: Measurable V
Cv: Type
H0: ElemOf V Cv
H1: Empty Cv
H2: Singleton V Cv
H3: Union Cv
H4: Intersection Cv
H5: Difference Cv
H6: Elements V Cv
EqDecision0: EqDecision V
H7: FinSet V Cv
l: list V(0 <= sum_weights_list l)%RV: Type
H: Measurable V
Cv: Type
H0: ElemOf V Cv
H1: Empty Cv
H2: Singleton V Cv
H3: Union Cv
H4: Intersection Cv
H5: Difference Cv
H6: Elements V Cv
EqDecision0: EqDecision V
H7: FinSet V Cv
l: list V(0 <= sum_weights_list l)%RV: Type
H: Measurable V
Cv: Type
H0: ElemOf V Cv
H1: Empty Cv
H2: Singleton V Cv
H3: Union Cv
H4: Intersection Cv
H5: Difference Cv
H6: Elements V Cv
EqDecision0: EqDecision V
H7: FinSet V Cv
a: V
l: list V
IHl: (0 <= sum_weights_list l)%R(0 <= sum_weights_list (a :: l))%RV: Type
H: Measurable V
Cv: Type
H0: ElemOf V Cv
H1: Empty Cv
H2: Singleton V Cv
H3: Union Cv
H4: Intersection Cv
H5: Difference Cv
H6: Elements V Cv
EqDecision0: EqDecision V
H7: FinSet V Cv
a: V
l: list V
IHl: (0 <= sum_weights_list l)%R(0 <= `(weight a) + sum_weights_list l)%RV: Type
H: Measurable V
Cv: Type
H0: ElemOf V Cv
H1: Empty Cv
H2: Singleton V Cv
H3: Union Cv
H4: Intersection Cv
H5: Difference Cv
H6: Elements V Cv
EqDecision0: EqDecision V
H7: FinSet V Cv
a: V
l: list V
IHl: (0 <= sum_weights_list l)%R(0 <= `(weight a))%Rby apply Rlt_le. Qed.V: Type
H: Measurable V
Cv: Type
H0: ElemOf V Cv
H1: Empty Cv
H2: Singleton V Cv
H3: Union Cv
H4: Intersection Cv
H5: Difference Cv
H6: Elements V Cv
EqDecision0: EqDecision V
H7: FinSet V Cv
a: V
l: list V
IHl: (0 <= sum_weights_list l)%R
x: R
r: (x > 0)%R(0 <= x)%RV: Type
H: Measurable V
Cv: Type
H0: ElemOf V Cv
H1: Empty Cv
H2: Singleton V Cv
H3: Union Cv
H4: Intersection Cv
H5: Difference Cv
H6: Elements V Cv
EqDecision0: EqDecision V
H7: FinSet V Cv
l: Cv(0 <= sum_weights l)%RV: Type
H: Measurable V
Cv: Type
H0: ElemOf V Cv
H1: Empty Cv
H2: Singleton V Cv
H3: Union Cv
H4: Intersection Cv
H5: Difference Cv
H6: Elements V Cv
EqDecision0: EqDecision V
H7: FinSet V Cv
l: Cv(0 <= sum_weights l)%Rby apply sum_weights_positive_list. Qed.V: Type
H: Measurable V
Cv: Type
H0: ElemOf V Cv
H1: Empty Cv
H2: Singleton V Cv
H3: Union Cv
H4: Intersection Cv
H5: Difference Cv
H6: Elements V Cv
EqDecision0: EqDecision V
H7: FinSet V Cv
l: Cv(0 <= sum_weights_list (elements l))%RV: Type
H: Measurable V
Cv: Type
H0: ElemOf V Cv
H1: Empty Cv
H2: Singleton V Cv
H3: Union Cv
H4: Intersection Cv
H5: Difference Cv
H6: Elements V Cv
EqDecision0: EqDecision V
H7: FinSet V Cvโ (v : V) (vs : list V), NoDup vs โ v โ vs โ sum_weights_list vs = (`(weight v) + sum_weights_list (set_remove v vs))%RV: Type
H: Measurable V
Cv: Type
H0: ElemOf V Cv
H1: Empty Cv
H2: Singleton V Cv
H3: Union Cv
H4: Intersection Cv
H5: Difference Cv
H6: Elements V Cv
EqDecision0: EqDecision V
H7: FinSet V Cvโ (v : V) (vs : list V), NoDup vs โ v โ vs โ sum_weights_list vs = (`(weight v) + sum_weights_list (set_remove v vs))%RV: Type
H: Measurable V
Cv: Type
H0: ElemOf V Cv
H1: Empty Cv
H2: Singleton V Cv
H3: Union Cv
H4: Intersection Cv
H5: Difference Cv
H6: Elements V Cv
EqDecision0: EqDecision V
H7: FinSet V Cv
a: V
vs: list V
IHvs: NoDup vs โ a โ vs โ sum_weights_list vs = (`(weight a) + sum_weights_list (set_remove a vs))%R
Hnodup: NoDup (a :: vs)(`(weight a) + foldr (ฮป (v : V) (r : R), `(weight v) + r) 0 vs)%R = (`(weight a) + foldr (ฮป (v : V) (r : R), `(weight v) + r) 0 (if decide (a = a) then vs else a :: set_remove a vs))%RV: Type
H: Measurable V
Cv: Type
H0: ElemOf V Cv
H1: Empty Cv
H2: Singleton V Cv
H3: Union Cv
H4: Intersection Cv
H5: Difference Cv
H6: Elements V Cv
EqDecision0: EqDecision V
H7: FinSet V Cv
v, a: V
vs: list V
IHvs: NoDup vs โ v โ vs โ sum_weights_list vs = (`(weight v) + sum_weights_list (set_remove v vs))%R
Hnodup: NoDup (a :: vs)
Hv': v โ vs(`(weight a) + foldr (ฮป (v : V) (r : R), `(weight v) + r) 0 vs)%R = (`(weight v) + foldr (ฮป (v : V) (r : R), `(weight v) + r) 0 (if decide (v = a) then vs else a :: set_remove v vs))%RV: Type
H: Measurable V
Cv: Type
H0: ElemOf V Cv
H1: Empty Cv
H2: Singleton V Cv
H3: Union Cv
H4: Intersection Cv
H5: Difference Cv
H6: Elements V Cv
EqDecision0: EqDecision V
H7: FinSet V Cv
a: V
vs: list V
IHvs: NoDup vs โ a โ vs โ sum_weights_list vs = (`(weight a) + sum_weights_list (set_remove a vs))%R
Hnodup: NoDup (a :: vs)(`(weight a) + foldr (ฮป (v : V) (r : R), `(weight v) + r) 0 vs)%R = (`(weight a) + foldr (ฮป (v : V) (r : R), `(weight v) + r) 0 (if decide (a = a) then vs else a :: set_remove a vs))%RV: Type
H: Measurable V
Cv: Type
H0: ElemOf V Cv
H1: Empty Cv
H2: Singleton V Cv
H3: Union Cv
H4: Intersection Cv
H5: Difference Cv
H6: Elements V Cv
EqDecision0: EqDecision V
H7: FinSet V Cv
a: V
vs: list V
IHvs: NoDup vs โ a โ vs โ sum_weights_list vs = (`(weight a) + sum_weights_list (set_remove a vs))%R
H10: a โ vs
H11: NoDup vs(`(weight a) + foldr (ฮป (v : V) (r : R), `(weight v) + r) 0 vs)%R = (`(weight a) + foldr (ฮป (v : V) (r : R), `(weight v) + r) 0 (if decide (a = a) then vs else a :: set_remove a vs))%Rby rewrite decide_True.V: Type
H: Measurable V
Cv: Type
H0: ElemOf V Cv
H1: Empty Cv
H2: Singleton V Cv
H3: Union Cv
H4: Intersection Cv
H5: Difference Cv
H6: Elements V Cv
EqDecision0: EqDecision V
H7: FinSet V Cv
a: V
vs: list V
IHvs: NoDup vs โ a โ vs โ sum_weights_list vs = (`(weight a) + sum_weights_list (set_remove a vs))%R
H10: a โ vs
H11: NoDup vsfoldr (ฮป (v : V) (r : R), (`(weight v) + r)%R) 0%R vs = foldr (ฮป (v : V) (r : R), (`(weight v) + r)%R) 0%R (if decide (a = a) then vs else a :: set_remove a vs)V: Type
H: Measurable V
Cv: Type
H0: ElemOf V Cv
H1: Empty Cv
H2: Singleton V Cv
H3: Union Cv
H4: Intersection Cv
H5: Difference Cv
H6: Elements V Cv
EqDecision0: EqDecision V
H7: FinSet V Cv
v, a: V
vs: list V
IHvs: NoDup vs โ v โ vs โ sum_weights_list vs = (`(weight v) + sum_weights_list (set_remove v vs))%R
Hnodup: NoDup (a :: vs)
Hv': v โ vs(`(weight a) + foldr (ฮป (v : V) (r : R), `(weight v) + r) 0 vs)%R = (`(weight v) + foldr (ฮป (v : V) (r : R), `(weight v) + r) 0 (if decide (v = a) then vs else a :: set_remove v vs))%RV: Type
H: Measurable V
Cv: Type
H0: ElemOf V Cv
H1: Empty Cv
H2: Singleton V Cv
H3: Union Cv
H4: Intersection Cv
H5: Difference Cv
H6: Elements V Cv
EqDecision0: EqDecision V
H7: FinSet V Cv
v, a: V
vs: list V
IHvs: NoDup vs โ v โ vs โ sum_weights_list vs = (`(weight v) + sum_weights_list (set_remove v vs))%R
Hv': v โ vs
Ha: a โ vs
Hnodup': NoDup vs(`(weight a) + foldr (ฮป (v : V) (r : R), `(weight v) + r) 0 vs)%R = (`(weight v) + foldr (ฮป (v : V) (r : R), `(weight v) + r) 0 (if decide (v = a) then vs else a :: set_remove v vs))%RV: Type
H: Measurable V
Cv: Type
H0: ElemOf V Cv
H1: Empty Cv
H2: Singleton V Cv
H3: Union Cv
H4: Intersection Cv
H5: Difference Cv
H6: Elements V Cv
EqDecision0: EqDecision V
H7: FinSet V Cv
v, a: V
vs: list V
IHvs: NoDup vs โ v โ vs โ sum_weights_list vs = (`(weight v) + sum_weights_list (set_remove v vs))%R
Hv': v โ vs
Ha: a โ vs
Hnodup': NoDup vs(`(weight a) + foldr (ฮป (v : V) (r : R), `(weight v) + r) 0 vs)%R = (`(weight v) + (`(weight a) + foldr (ฮป (v : V) (r : R), `(weight v) + r) 0 (set_remove v vs)))%Rby apply Rplus_eq_compat_l, IHvs. Qed.V: Type
H: Measurable V
Cv: Type
H0: ElemOf V Cv
H1: Empty Cv
H2: Singleton V Cv
H3: Union Cv
H4: Intersection Cv
H5: Difference Cv
H6: Elements V Cv
EqDecision0: EqDecision V
H7: FinSet V Cv
v, a: V
vs: list V
IHvs: NoDup vs โ v โ vs โ sum_weights_list vs = (`(weight v) + sum_weights_list (set_remove v vs))%R
Hv': v โ vs
Ha: a โ vs
Hnodup': NoDup vs(`(weight a) + foldr (ฮป (v : V) (r : R), `(weight v) + r) 0 vs)%R = (`(weight a) + (`(weight v) + foldr (ฮป (v : V) (r : R), `(weight v) + r) 0 (set_remove v vs)))%RV: Type
H: Measurable V
Cv: Type
H0: ElemOf V Cv
H1: Empty Cv
H2: Singleton V Cv
H3: Union Cv
H4: Intersection Cv
H5: Difference Cv
H6: Elements V Cv
EqDecision0: EqDecision V
H7: FinSet V Cvโ vs vs' : list V, NoDup vs โ NoDup vs' โ vs โ vs' โ (sum_weights_list vs <= sum_weights_list vs')%RV: Type
H: Measurable V
Cv: Type
H0: ElemOf V Cv
H1: Empty Cv
H2: Singleton V Cv
H3: Union Cv
H4: Intersection Cv
H5: Difference Cv
H6: Elements V Cv
EqDecision0: EqDecision V
H7: FinSet V Cvโ vs vs' : list V, NoDup vs โ NoDup vs' โ vs โ vs' โ (sum_weights_list vs <= sum_weights_list vs')%RV: Type
H: Measurable V
Cv: Type
H0: ElemOf V Cv
H1: Empty Cv
H2: Singleton V Cv
H3: Union Cv
H4: Intersection Cv
H5: Difference Cv
H6: Elements V Cv
EqDecision0: EqDecision V
H7: FinSet V Cv
a: V
vs: list V
IHvs: โ vs' : list V, NoDup vs โ NoDup vs' โ vs โ vs' โ (sum_weights_list vs <= sum_weights_list vs')%R
vs': list V
Hnodup_vs: NoDup (a :: vs)
Hnodup_vs': NoDup vs'
Hincl: a :: vs โ vs'(sum_weights_list (a :: vs) <= sum_weights_list vs')%RV: Type
H: Measurable V
Cv: Type
H0: ElemOf V Cv
H1: Empty Cv
H2: Singleton V Cv
H3: Union Cv
H4: Intersection Cv
H5: Difference Cv
H6: Elements V Cv
EqDecision0: EqDecision V
H7: FinSet V Cv
a: V
vs: list V
IHvs: โ vs' : list V, NoDup vs โ NoDup vs' โ vs โ vs' โ (sum_weights_list vs <= sum_weights_list vs')%R
vs': list V
Hnodup_vs: NoDup (a :: vs)
Hnodup_vs': NoDup vs'
Hincl: a :: vs โ vs'
Hvs': a โ vs' โ sum_weights_list vs' = (`(weight a) + sum_weights_list (set_remove a vs'))%R(sum_weights_list (a :: vs) <= sum_weights_list vs')%RV: Type
H: Measurable V
Cv: Type
H0: ElemOf V Cv
H1: Empty Cv
H2: Singleton V Cv
H3: Union Cv
H4: Intersection Cv
H5: Difference Cv
H6: Elements V Cv
EqDecision0: EqDecision V
H7: FinSet V Cv
a: V
vs: list V
IHvs: โ vs' : list V, NoDup vs โ NoDup vs' โ vs โ vs' โ (sum_weights_list vs <= sum_weights_list vs')%R
vs': list V
Hnodup_vs: NoDup (a :: vs)
Hnodup_vs': NoDup vs'
Hincl: a :: vs โ vs'
Hvs': sum_weights_list vs' = (`(weight a) + sum_weights_list (set_remove a vs'))%R(sum_weights_list (a :: vs) <= sum_weights_list vs')%RV: Type
H: Measurable V
Cv: Type
H0: ElemOf V Cv
H1: Empty Cv
H2: Singleton V Cv
H3: Union Cv
H4: Intersection Cv
H5: Difference Cv
H6: Elements V Cv
EqDecision0: EqDecision V
H7: FinSet V Cv
a: V
vs: list V
IHvs: โ vs' : list V, NoDup vs โ NoDup vs' โ vs โ vs' โ (sum_weights_list vs <= sum_weights_list vs')%R
vs': list V
Hnodup_vs: NoDup (a :: vs)
Hnodup_vs': NoDup vs'
Hincl: a :: vs โ vs'
Hvs': sum_weights_list vs' = (`(weight a) + sum_weights_list (set_remove a vs'))%R(`(weight a) + foldr (ฮป (v : V) (r : R), `(weight v) + r) 0 vs <= `(weight a) + sum_weights_list (set_remove a vs'))%RV: Type
H: Measurable V
Cv: Type
H0: ElemOf V Cv
H1: Empty Cv
H2: Singleton V Cv
H3: Union Cv
H4: Intersection Cv
H5: Difference Cv
H6: Elements V Cv
EqDecision0: EqDecision V
H7: FinSet V Cv
a: V
vs: list V
IHvs: โ vs' : list V, NoDup vs โ NoDup vs' โ vs โ vs' โ (sum_weights_list vs <= sum_weights_list vs')%R
vs': list V
Hnodup_vs: NoDup (a :: vs)
Hnodup_vs': NoDup vs'
Hincl: a :: vs โ vs'
Hvs': sum_weights_list vs' = (`(weight a) + sum_weights_list (set_remove a vs'))%R(foldr (ฮป (v : V) (r : R), `(weight v) + r) 0 vs <= sum_weights_list (set_remove a vs'))%RV: Type
H: Measurable V
Cv: Type
H0: ElemOf V Cv
H1: Empty Cv
H2: Singleton V Cv
H3: Union Cv
H4: Intersection Cv
H5: Difference Cv
H6: Elements V Cv
EqDecision0: EqDecision V
H7: FinSet V Cv
a: V
vs: list V
IHvs: โ vs' : list V, NoDup vs โ NoDup vs' โ vs โ vs' โ (sum_weights_list vs <= sum_weights_list vs')%R
vs': list V
Hnodup_vs': NoDup vs'
Hincl: a :: vs โ vs'
Hvs': sum_weights_list vs' = (`(weight a) + sum_weights_list (set_remove a vs'))%R
H10: a โ vs
H11: NoDup vs(foldr (ฮป (v : V) (r : R), `(weight v) + r) 0 vs <= sum_weights_list (set_remove a vs'))%RV: Type
H: Measurable V
Cv: Type
H0: ElemOf V Cv
H1: Empty Cv
H2: Singleton V Cv
H3: Union Cv
H4: Intersection Cv
H5: Difference Cv
H6: Elements V Cv
EqDecision0: EqDecision V
H7: FinSet V Cv
a: V
vs: list V
IHvs: โ vs' : list V, NoDup vs โ NoDup vs' โ vs โ vs' โ (sum_weights_list vs <= sum_weights_list vs')%R
vs': list V
Hnodup_vs': NoDup vs'
Hincl: a :: vs โ vs'
Hvs': sum_weights_list vs' = (`(weight a) + sum_weights_list (set_remove a vs'))%R
H10: a โ vs
H11: NoDup vsvs โ set_remove a vs'V: Type
H: Measurable V
Cv: Type
H0: ElemOf V Cv
H1: Empty Cv
H2: Singleton V Cv
H3: Union Cv
H4: Intersection Cv
H5: Difference Cv
H6: Elements V Cv
EqDecision0: EqDecision V
H7: FinSet V Cv
a: V
vs: list V
IHvs: โ vs' : list V, NoDup vs โ NoDup vs' โ vs โ vs' โ (sum_weights_list vs <= sum_weights_list vs')%R
vs': list V
Hnodup_vs': NoDup vs'
Hincl: a :: vs โ vs'
Hvs': sum_weights_list vs' = (`(weight a) + sum_weights_list (set_remove a vs'))%R
H10: a โ vs
H11: NoDup vs
v: V
Hv: v โ vsv โ set_remove a vs'V: Type
H: Measurable V
Cv: Type
H0: ElemOf V Cv
H1: Empty Cv
H2: Singleton V Cv
H3: Union Cv
H4: Intersection Cv
H5: Difference Cv
H6: Elements V Cv
EqDecision0: EqDecision V
H7: FinSet V Cv
a: V
vs: list V
IHvs: โ vs' : list V, NoDup vs โ NoDup vs' โ vs โ vs' โ (sum_weights_list vs <= sum_weights_list vs')%R
vs': list V
Hnodup_vs': NoDup vs'
Hincl: a :: vs โ vs'
Hvs': sum_weights_list vs' = (`(weight a) + sum_weights_list (set_remove a vs'))%R
H10: a โ vs
H11: NoDup vs
v: V
Hv: v โ vsv โ vs' โง v โ aV: Type
H: Measurable V
Cv: Type
H0: ElemOf V Cv
H1: Empty Cv
H2: Singleton V Cv
H3: Union Cv
H4: Intersection Cv
H5: Difference Cv
H6: Elements V Cv
EqDecision0: EqDecision V
H7: FinSet V Cv
a: V
vs: list V
IHvs: โ vs' : list V, NoDup vs โ NoDup vs' โ vs โ vs' โ (sum_weights_list vs <= sum_weights_list vs')%R
vs': list V
Hnodup_vs': NoDup vs'
Hincl: a :: vs โ vs'
Hvs': sum_weights_list vs' = (`(weight a) + sum_weights_list (set_remove a vs'))%R
H10: a โ vs
H11: NoDup vs
v: V
Hv: v โ vsv โ vs'V: Type
H: Measurable V
Cv: Type
H0: ElemOf V Cv
H1: Empty Cv
H2: Singleton V Cv
H3: Union Cv
H4: Intersection Cv
H5: Difference Cv
H6: Elements V Cv
EqDecision0: EqDecision V
H7: FinSet V Cv
a: V
vs: list V
IHvs: โ vs' : list V, NoDup vs โ NoDup vs' โ vs โ vs' โ (sum_weights_list vs <= sum_weights_list vs')%R
vs': list V
Hnodup_vs': NoDup vs'
Hincl: a :: vs โ vs'
Hvs': sum_weights_list vs' = (`(weight a) + sum_weights_list (set_remove a vs'))%R
H10: a โ vs
H11: NoDup vs
v: V
Hv: v โ vsv โ aby apply Hincl; right.V: Type
H: Measurable V
Cv: Type
H0: ElemOf V Cv
H1: Empty Cv
H2: Singleton V Cv
H3: Union Cv
H4: Intersection Cv
H5: Difference Cv
H6: Elements V Cv
EqDecision0: EqDecision V
H7: FinSet V Cv
a: V
vs: list V
IHvs: โ vs' : list V, NoDup vs โ NoDup vs' โ vs โ vs' โ (sum_weights_list vs <= sum_weights_list vs')%R
vs': list V
Hnodup_vs': NoDup vs'
Hincl: a :: vs โ vs'
Hvs': sum_weights_list vs' = (`(weight a) + sum_weights_list (set_remove a vs'))%R
H10: a โ vs
H11: NoDup vs
v: V
Hv: v โ vsv โ vs'by intros ->. Qed.V: Type
H: Measurable V
Cv: Type
H0: ElemOf V Cv
H1: Empty Cv
H2: Singleton V Cv
H3: Union Cv
H4: Intersection Cv
H5: Difference Cv
H6: Elements V Cv
EqDecision0: EqDecision V
H7: FinSet V Cv
a: V
vs: list V
IHvs: โ vs' : list V, NoDup vs โ NoDup vs' โ vs โ vs' โ (sum_weights_list vs <= sum_weights_list vs')%R
vs': list V
Hnodup_vs': NoDup vs'
Hincl: a :: vs โ vs'
Hvs': sum_weights_list vs' = (`(weight a) + sum_weights_list (set_remove a vs'))%R
H10: a โ vs
H11: NoDup vs
v: V
Hv: v โ vsv โ aV: Type
H: Measurable V
Cv: Type
H0: ElemOf V Cv
H1: Empty Cv
H2: Singleton V Cv
H3: Union Cv
H4: Intersection Cv
H5: Difference Cv
H6: Elements V Cv
EqDecision0: EqDecision V
H7: FinSet V Cvโ vs vs' : Cv, vs โ vs' โ (sum_weights vs <= sum_weights vs')%RV: Type
H: Measurable V
Cv: Type
H0: ElemOf V Cv
H1: Empty Cv
H2: Singleton V Cv
H3: Union Cv
H4: Intersection Cv
H5: Difference Cv
H6: Elements V Cv
EqDecision0: EqDecision V
H7: FinSet V Cvโ vs vs' : Cv, vs โ vs' โ (sum_weights vs <= sum_weights vs')%RV: Type
H: Measurable V
Cv: Type
H0: ElemOf V Cv
H1: Empty Cv
H2: Singleton V Cv
H3: Union Cv
H4: Intersection Cv
H5: Difference Cv
H6: Elements V Cv
EqDecision0: EqDecision V
H7: FinSet V Cv
vs, vs': Cv
Hincl: vs โ vs'(sum_weights vs <= sum_weights vs')%RV: Type
H: Measurable V
Cv: Type
H0: ElemOf V Cv
H1: Empty Cv
H2: Singleton V Cv
H3: Union Cv
H4: Intersection Cv
H5: Difference Cv
H6: Elements V Cv
EqDecision0: EqDecision V
H7: FinSet V Cv
vs, vs': Cv
Hincl: vs โ vs'(sum_weights_list (elements vs) <= sum_weights_list (elements vs'))%RV: Type
H: Measurable V
Cv: Type
H0: ElemOf V Cv
H1: Empty Cv
H2: Singleton V Cv
H3: Union Cv
H4: Intersection Cv
H5: Difference Cv
H6: Elements V Cv
EqDecision0: EqDecision V
H7: FinSet V Cv
vs, vs': Cv
Hincl: vs โ vs'NoDup (elements vs)V: Type
H: Measurable V
Cv: Type
H0: ElemOf V Cv
H1: Empty Cv
H2: Singleton V Cv
H3: Union Cv
H4: Intersection Cv
H5: Difference Cv
H6: Elements V Cv
EqDecision0: EqDecision V
H7: FinSet V Cv
vs, vs': Cv
Hincl: vs โ vs'NoDup (elements vs')V: Type
H: Measurable V
Cv: Type
H0: ElemOf V Cv
H1: Empty Cv
H2: Singleton V Cv
H3: Union Cv
H4: Intersection Cv
H5: Difference Cv
H6: Elements V Cv
EqDecision0: EqDecision V
H7: FinSet V Cv
vs, vs': Cv
Hincl: vs โ vs'elements vs โ elements vs'by apply NoDup_elements.V: Type
H: Measurable V
Cv: Type
H0: ElemOf V Cv
H1: Empty Cv
H2: Singleton V Cv
H3: Union Cv
H4: Intersection Cv
H5: Difference Cv
H6: Elements V Cv
EqDecision0: EqDecision V
H7: FinSet V Cv
vs, vs': Cv
Hincl: vs โ vs'NoDup (elements vs)by apply NoDup_elements.V: Type
H: Measurable V
Cv: Type
H0: ElemOf V Cv
H1: Empty Cv
H2: Singleton V Cv
H3: Union Cv
H4: Intersection Cv
H5: Difference Cv
H6: Elements V Cv
EqDecision0: EqDecision V
H7: FinSet V Cv
vs, vs': Cv
Hincl: vs โ vs'NoDup (elements vs')by intro v; rewrite !elem_of_elements; apply Hincl. Qed.V: Type
H: Measurable V
Cv: Type
H0: ElemOf V Cv
H1: Empty Cv
H2: Singleton V Cv
H3: Union Cv
H4: Intersection Cv
H5: Difference Cv
H6: Elements V Cv
EqDecision0: EqDecision V
H7: FinSet V Cv
vs, vs': Cv
Hincl: vs โ vs'elements vs โ elements vs'V: Type
H: Measurable V
Cv: Type
H0: ElemOf V Cv
H1: Empty Cv
H2: Singleton V Cv
H3: Union Cv
H4: Intersection Cv
H5: Difference Cv
H6: Elements V Cv
EqDecision0: EqDecision V
H7: FinSet V CvProper (equiv ==> eq) sum_weightsV: Type
H: Measurable V
Cv: Type
H0: ElemOf V Cv
H1: Empty Cv
H2: Singleton V Cv
H3: Union Cv
H4: Intersection Cv
H5: Difference Cv
H6: Elements V Cv
EqDecision0: EqDecision V
H7: FinSet V CvProper (equiv ==> eq) sum_weightsby apply Rle_antisym; apply sum_weights_subseteq; intro a; apply Hequiv. Qed.V: Type
H: Measurable V
Cv: Type
H0: ElemOf V Cv
H1: Empty Cv
H2: Singleton V Cv
H3: Union Cv
H4: Intersection Cv
H5: Difference Cv
H6: Elements V Cv
EqDecision0: EqDecision V
H7: FinSet V Cv
x, y: Cv
Hequiv: x โก ysum_weights x = sum_weights yV: Type
H: Measurable V
Cv: Type
H0: ElemOf V Cv
H1: Empty Cv
H2: Singleton V Cv
H3: Union Cv
H4: Intersection Cv
H5: Difference Cv
H6: Elements V Cv
EqDecision0: EqDecision V
H7: FinSet V Cvโ (v : V) (vs : Cv), v โ vs โ sum_weights vs = (`(weight v) + sum_weights (vs โ {[v]}))%RV: Type
H: Measurable V
Cv: Type
H0: ElemOf V Cv
H1: Empty Cv
H2: Singleton V Cv
H3: Union Cv
H4: Intersection Cv
H5: Difference Cv
H6: Elements V Cv
EqDecision0: EqDecision V
H7: FinSet V Cvโ (v : V) (vs : Cv), v โ vs โ sum_weights vs = (`(weight v) + sum_weights (vs โ {[v]}))%RV: Type
H: Measurable V
Cv: Type
H0: ElemOf V Cv
H1: Empty Cv
H2: Singleton V Cv
H3: Union Cv
H4: Intersection Cv
H5: Difference Cv
H6: Elements V Cv
EqDecision0: EqDecision V
H7: FinSet V Cv
v: V
vs: Cv
Hv: v โ vssum_weights vs = (`(weight v) + sum_weights (vs โ {[v]}))%RV: Type
H: Measurable V
Cv: Type
H0: ElemOf V Cv
H1: Empty Cv
H2: Singleton V Cv
H3: Union Cv
H4: Intersection Cv
H5: Difference Cv
H6: Elements V Cv
EqDecision0: EqDecision V
H7: FinSet V Cv
v: V
vs: Cv
Hv: v โ vsNoDup (elements vs)V: Type
H: Measurable V
Cv: Type
H0: ElemOf V Cv
H1: Empty Cv
H2: Singleton V Cv
H3: Union Cv
H4: Intersection Cv
H5: Difference Cv
H6: Elements V Cv
EqDecision0: EqDecision V
H7: FinSet V Cv
v: V
vs: Cv
Hv: v โ vsv โ elements vsV: Type
H: Measurable V
Cv: Type
H0: ElemOf V Cv
H1: Empty Cv
H2: Singleton V Cv
H3: Union Cv
H4: Intersection Cv
H5: Difference Cv
H6: Elements V Cv
EqDecision0: EqDecision V
H7: FinSet V Cv
v: V
vs: Cv
Hv: v โ vs(`(weight v) + sum_weights_list (set_remove v (elements vs)))%R = (`(weight v) + sum_weights (vs โ {[v]}))%Rby apply NoDup_elements.V: Type
H: Measurable V
Cv: Type
H0: ElemOf V Cv
H1: Empty Cv
H2: Singleton V Cv
H3: Union Cv
H4: Intersection Cv
H5: Difference Cv
H6: Elements V Cv
EqDecision0: EqDecision V
H7: FinSet V Cv
v: V
vs: Cv
Hv: v โ vsNoDup (elements vs)by apply elem_of_elements.V: Type
H: Measurable V
Cv: Type
H0: ElemOf V Cv
H1: Empty Cv
H2: Singleton V Cv
H3: Union Cv
H4: Intersection Cv
H5: Difference Cv
H6: Elements V Cv
EqDecision0: EqDecision V
H7: FinSet V Cv
v: V
vs: Cv
Hv: v โ vsv โ elements vsV: Type
H: Measurable V
Cv: Type
H0: ElemOf V Cv
H1: Empty Cv
H2: Singleton V Cv
H3: Union Cv
H4: Intersection Cv
H5: Difference Cv
H6: Elements V Cv
EqDecision0: EqDecision V
H7: FinSet V Cv
v: V
vs: Cv
Hv: v โ vs(`(weight v) + sum_weights_list (set_remove v (elements vs)))%R = (`(weight v) + sum_weights (vs โ {[v]}))%RV: Type
H: Measurable V
Cv: Type
H0: ElemOf V Cv
H1: Empty Cv
H2: Singleton V Cv
H3: Union Cv
H4: Intersection Cv
H5: Difference Cv
H6: Elements V Cv
EqDecision0: EqDecision V
H7: FinSet V Cv
v: V
vs: Cv
Hv: v โ vsNoDup (set_remove v (elements vs))V: Type
H: Measurable V
Cv: Type
H0: ElemOf V Cv
H1: Empty Cv
H2: Singleton V Cv
H3: Union Cv
H4: Intersection Cv
H5: Difference Cv
H6: Elements V Cv
EqDecision0: EqDecision V
H7: FinSet V Cv
v: V
vs: Cv
Hv: v โ vsNoDup (elements (vs โ {[v]}))V: Type
H: Measurable V
Cv: Type
H0: ElemOf V Cv
H1: Empty Cv
H2: Singleton V Cv
H3: Union Cv
H4: Intersection Cv
H5: Difference Cv
H6: Elements V Cv
EqDecision0: EqDecision V
H7: FinSet V Cv
v: V
vs: Cv
Hv: v โ vsset_remove v (elements vs) โ elements (vs โ {[v]})V: Type
H: Measurable V
Cv: Type
H0: ElemOf V Cv
H1: Empty Cv
H2: Singleton V Cv
H3: Union Cv
H4: Intersection Cv
H5: Difference Cv
H6: Elements V Cv
EqDecision0: EqDecision V
H7: FinSet V Cv
v: V
vs: Cv
Hv: v โ vsNoDup (elements (vs โ {[v]}))V: Type
H: Measurable V
Cv: Type
H0: ElemOf V Cv
H1: Empty Cv
H2: Singleton V Cv
H3: Union Cv
H4: Intersection Cv
H5: Difference Cv
H6: Elements V Cv
EqDecision0: EqDecision V
H7: FinSet V Cv
v: V
vs: Cv
Hv: v โ vsNoDup (set_remove v (elements vs))V: Type
H: Measurable V
Cv: Type
H0: ElemOf V Cv
H1: Empty Cv
H2: Singleton V Cv
H3: Union Cv
H4: Intersection Cv
H5: Difference Cv
H6: Elements V Cv
EqDecision0: EqDecision V
H7: FinSet V Cv
v: V
vs: Cv
Hv: v โ vselements (vs โ {[v]}) โ set_remove v (elements vs)by apply set_remove_nodup, NoDup_elements.V: Type
H: Measurable V
Cv: Type
H0: ElemOf V Cv
H1: Empty Cv
H2: Singleton V Cv
H3: Union Cv
H4: Intersection Cv
H5: Difference Cv
H6: Elements V Cv
EqDecision0: EqDecision V
H7: FinSet V Cv
v: V
vs: Cv
Hv: v โ vsNoDup (set_remove v (elements vs))by apply NoDup_elements.V: Type
H: Measurable V
Cv: Type
H0: ElemOf V Cv
H1: Empty Cv
H2: Singleton V Cv
H3: Union Cv
H4: Intersection Cv
H5: Difference Cv
H6: Elements V Cv
EqDecision0: EqDecision V
H7: FinSet V Cv
v: V
vs: Cv
Hv: v โ vsNoDup (elements (vs โ {[v]}))V: Type
H: Measurable V
Cv: Type
H0: ElemOf V Cv
H1: Empty Cv
H2: Singleton V Cv
H3: Union Cv
H4: Intersection Cv
H5: Difference Cv
H6: Elements V Cv
EqDecision0: EqDecision V
H7: FinSet V Cv
v: V
vs: Cv
Hv: v โ vsset_remove v (elements vs) โ elements (vs โ {[v]})V: Type
H: Measurable V
Cv: Type
H0: ElemOf V Cv
H1: Empty Cv
H2: Singleton V Cv
H3: Union Cv
H4: Intersection Cv
H5: Difference Cv
H6: Elements V Cv
EqDecision0: EqDecision V
H7: FinSet V Cv
v: V
vs: Cv
Hv: v โ vs
x: V
Hx: x โ set_remove v (elements vs)x โ elements (vs โ {[v]})V: Type
H: Measurable V
Cv: Type
H0: ElemOf V Cv
H1: Empty Cv
H2: Singleton V Cv
H3: Union Cv
H4: Intersection Cv
H5: Difference Cv
H6: Elements V Cv
EqDecision0: EqDecision V
H7: FinSet V Cv
v: V
vs: Cv
Hv: v โ vs
x: V
Hx: x โ set_remove v (elements vs)x โ vs โ {[v]}V: Type
H: Measurable V
Cv: Type
H0: ElemOf V Cv
H1: Empty Cv
H2: Singleton V Cv
H3: Union Cv
H4: Intersection Cv
H5: Difference Cv
H6: Elements V Cv
EqDecision0: EqDecision V
H7: FinSet V Cv
v: V
vs: Cv
Hv: v โ vs
x: V
Hx: x โ elements vs โง x โ vx โ vs โ {[v]}by rewrite elem_of_difference, elem_of_singleton.V: Type
H: Measurable V
Cv: Type
H0: ElemOf V Cv
H1: Empty Cv
H2: Singleton V Cv
H3: Union Cv
H4: Intersection Cv
H5: Difference Cv
H6: Elements V Cv
EqDecision0: EqDecision V
H7: FinSet V Cv
v: V
vs: Cv
Hv: v โ vs
x: V
Hx: x โ vs โง x โ vx โ vs โ {[v]}by apply NoDup_elements.V: Type
H: Measurable V
Cv: Type
H0: ElemOf V Cv
H1: Empty Cv
H2: Singleton V Cv
H3: Union Cv
H4: Intersection Cv
H5: Difference Cv
H6: Elements V Cv
EqDecision0: EqDecision V
H7: FinSet V Cv
v: V
vs: Cv
Hv: v โ vsNoDup (elements (vs โ {[v]}))by apply set_remove_nodup, NoDup_elements.V: Type
H: Measurable V
Cv: Type
H0: ElemOf V Cv
H1: Empty Cv
H2: Singleton V Cv
H3: Union Cv
H4: Intersection Cv
H5: Difference Cv
H6: Elements V Cv
EqDecision0: EqDecision V
H7: FinSet V Cv
v: V
vs: Cv
Hv: v โ vsNoDup (set_remove v (elements vs))V: Type
H: Measurable V
Cv: Type
H0: ElemOf V Cv
H1: Empty Cv
H2: Singleton V Cv
H3: Union Cv
H4: Intersection Cv
H5: Difference Cv
H6: Elements V Cv
EqDecision0: EqDecision V
H7: FinSet V Cv
v: V
vs: Cv
Hv: v โ vselements (vs โ {[v]}) โ set_remove v (elements vs)V: Type
H: Measurable V
Cv: Type
H0: ElemOf V Cv
H1: Empty Cv
H2: Singleton V Cv
H3: Union Cv
H4: Intersection Cv
H5: Difference Cv
H6: Elements V Cv
EqDecision0: EqDecision V
H7: FinSet V Cv
v: V
vs: Cv
Hv: v โ vs
x: V
Hx: x โ elements (vs โ {[v]})x โ set_remove v (elements vs)V: Type
H: Measurable V
Cv: Type
H0: ElemOf V Cv
H1: Empty Cv
H2: Singleton V Cv
H3: Union Cv
H4: Intersection Cv
H5: Difference Cv
H6: Elements V Cv
EqDecision0: EqDecision V
H7: FinSet V Cv
v: V
vs: Cv
Hv: v โ vs
x: V
Hx: x โ vs โง x โ vx โ set_remove v (elements vs)by rewrite elem_of_elements. Qed.V: Type
H: Measurable V
Cv: Type
H0: ElemOf V Cv
H1: Empty Cv
H2: Singleton V Cv
H3: Union Cv
H4: Intersection Cv
H5: Difference Cv
H6: Elements V Cv
EqDecision0: EqDecision V
H7: FinSet V Cv
v: V
vs: Cv
Hv: v โ vs
x: V
Hx: x โ vs โง x โ vx โ elements vs โง x โ vV: Type
H: Measurable V
Cv: Type
H0: ElemOf V Cv
H1: Empty Cv
H2: Singleton V Cv
H3: Union Cv
H4: Intersection Cv
H5: Difference Cv
H6: Elements V Cv
EqDecision0: EqDecision V
H7: FinSet V Cvโ vs vs' : list V, sum_weights_list (vs ++ vs') = (sum_weights_list vs + sum_weights_list vs')%Rby induction vs; intros; simpl; [| rewrite IHvs]; lra. Qed.V: Type
H: Measurable V
Cv: Type
H0: ElemOf V Cv
H1: Empty Cv
H2: Singleton V Cv
H3: Union Cv
H4: Intersection Cv
H5: Difference Cv
H6: Elements V Cv
EqDecision0: EqDecision V
H7: FinSet V Cvโ vs vs' : list V, sum_weights_list (vs ++ vs') = (sum_weights_list vs + sum_weights_list vs')%RV: Type
H: Measurable V
Cv: Type
H0: ElemOf V Cv
H1: Empty Cv
H2: Singleton V Cv
H3: Union Cv
H4: Intersection Cv
H5: Difference Cv
H6: Elements V Cv
EqDecision0: EqDecision V
H7: FinSet V CvProper (Permutation ==> eq) sum_weights_listV: Type
H: Measurable V
Cv: Type
H0: ElemOf V Cv
H1: Empty Cv
H2: Singleton V Cv
H3: Union Cv
H4: Intersection Cv
H5: Difference Cv
H6: Elements V Cv
EqDecision0: EqDecision V
H7: FinSet V CvProper (Permutation ==> eq) sum_weights_listV: Type
H: Measurable V
Cv: Type
H0: ElemOf V Cv
H1: Empty Cv
H2: Singleton V Cv
H3: Union Cv
H4: Intersection Cv
H5: Difference Cv
H6: Elements V Cv
EqDecision0: EqDecision V
H7: FinSet V Cv
l1, l2: list V
Hl: l1 โกโ l2sum_weights_list l1 = sum_weights_list l2V: Type
H: Measurable V
Cv: Type
H0: ElemOf V Cv
H1: Empty Cv
H2: Singleton V Cv
H3: Union Cv
H4: Intersection Cv
H5: Difference Cv
H6: Elements V Cv
EqDecision0: EqDecision V
H7: FinSet V Cv
l1, l2: list V
Hl: l1 โกโ l2PreOrder eqV: Type
H: Measurable V
Cv: Type
H0: ElemOf V Cv
H1: Empty Cv
H2: Singleton V Cv
H3: Union Cv
H4: Intersection Cv
H5: Difference Cv
H6: Elements V Cv
EqDecision0: EqDecision V
H7: FinSet V Cv
l1, l2: list V
Hl: l1 โกโ l2โ x : V, Proper (eq ==> eq) (ฮป r : R, (`(weight x) + r)%R)V: Type
H: Measurable V
Cv: Type
H0: ElemOf V Cv
H1: Empty Cv
H2: Singleton V Cv
H3: Union Cv
H4: Intersection Cv
H5: Difference Cv
H6: Elements V Cv
EqDecision0: EqDecision V
H7: FinSet V Cv
l1, l2: list V
Hl: l1 โกโ l2โ (a1 a2 : V) (b : R), (`(weight a1) + (`(weight a2) + b))%R = (`(weight a2) + (`(weight a1) + b))%Rby typeclasses eauto.V: Type
H: Measurable V
Cv: Type
H0: ElemOf V Cv
H1: Empty Cv
H2: Singleton V Cv
H3: Union Cv
H4: Intersection Cv
H5: Difference Cv
H6: Elements V Cv
EqDecision0: EqDecision V
H7: FinSet V Cv
l1, l2: list V
Hl: l1 โกโ l2PreOrder eqby congruence.V: Type
H: Measurable V
Cv: Type
H0: ElemOf V Cv
H1: Empty Cv
H2: Singleton V Cv
H3: Union Cv
H4: Intersection Cv
H5: Difference Cv
H6: Elements V Cv
EqDecision0: EqDecision V
H7: FinSet V Cv
l1, l2: list V
Hl: l1 โกโ l2โ x : V, Proper (eq ==> eq) (ฮป r : R, (`(weight x) + r)%R)by intros; lra. Qed.V: Type
H: Measurable V
Cv: Type
H0: ElemOf V Cv
H1: Empty Cv
H2: Singleton V Cv
H3: Union Cv
H4: Intersection Cv
H5: Difference Cv
H6: Elements V Cv
EqDecision0: EqDecision V
H7: FinSet V Cv
l1, l2: list V
Hl: l1 โกโ l2โ (a1 a2 : V) (b : R), (`(weight a1) + (`(weight a2) + b))%R = (`(weight a2) + (`(weight a1) + b))%RV: Type
H: Measurable V
Cv: Type
H0: ElemOf V Cv
H1: Empty Cv
H2: Singleton V Cv
H3: Union Cv
H4: Intersection Cv
H5: Difference Cv
H6: Elements V Cv
EqDecision0: EqDecision V
H7: FinSet V Cvโ vs vs' : Cv, vs ## vs' โ sum_weights (vs โช vs') = (sum_weights vs + sum_weights vs')%RV: Type
H: Measurable V
Cv: Type
H0: ElemOf V Cv
H1: Empty Cv
H2: Singleton V Cv
H3: Union Cv
H4: Intersection Cv
H5: Difference Cv
H6: Elements V Cv
EqDecision0: EqDecision V
H7: FinSet V Cvโ vs vs' : Cv, vs ## vs' โ sum_weights (vs โช vs') = (sum_weights vs + sum_weights vs')%RV: Type
H: Measurable V
Cv: Type
H0: ElemOf V Cv
H1: Empty Cv
H2: Singleton V Cv
H3: Union Cv
H4: Intersection Cv
H5: Difference Cv
H6: Elements V Cv
EqDecision0: EqDecision V
H7: FinSet V Cv
vs, vs': Cv
Hdisj: vs ## vs'sum_weights (vs โช vs') = (sum_weights vs + sum_weights vs')%RV: Type
H: Measurable V
Cv: Type
H0: ElemOf V Cv
H1: Empty Cv
H2: Singleton V Cv
H3: Union Cv
H4: Intersection Cv
H5: Difference Cv
H6: Elements V Cv
EqDecision0: EqDecision V
H7: FinSet V Cv
vs, vs': Cv
Hdisj: sum_weights_list (elements (vs โช vs')) = sum_weights_list (elements vs ++ elements vs')sum_weights (vs โช vs') = (sum_weights vs + sum_weights vs')%Rapply sum_weights_app_list. Qed.V: Type
H: Measurable V
Cv: Type
H0: ElemOf V Cv
H1: Empty Cv
H2: Singleton V Cv
H3: Union Cv
H4: Intersection Cv
H5: Difference Cv
H6: Elements V Cv
EqDecision0: EqDecision V
H7: FinSet V Cv
vs, vs': Cv
Hdisj: sum_weights_list (elements (vs โช vs')) = sum_weights_list (elements vs ++ elements vs')sum_weights_list (elements vs ++ elements vs') = (sum_weights vs + sum_weights vs')%RV: Type
H: Measurable V
Cv: Type
H0: ElemOf V Cv
H1: Empty Cv
H2: Singleton V Cv
H3: Union Cv
H4: Intersection Cv
H5: Difference Cv
H6: Elements V Cv
EqDecision0: EqDecision V
H7: FinSet V Cv
vs: Cvsum_weights (vs โช โ ) = sum_weights vsV: Type
H: Measurable V
Cv: Type
H0: ElemOf V Cv
H1: Empty Cv
H2: Singleton V Cv
H3: Union Cv
H4: Intersection Cv
H5: Difference Cv
H6: Elements V Cv
EqDecision0: EqDecision V
H7: FinSet V Cv
vs: Cvsum_weights (vs โช โ ) = sum_weights vsby rewrite (sum_weights_empty โ ); [lra |]. Qed. End sec_measurable_props.V: Type
H: Measurable V
Cv: Type
H0: ElemOf V Cv
H1: Empty Cv
H2: Singleton V Cv
H3: Union Cv
H4: Intersection Cv
H5: Difference Cv
H6: Elements V Cv
EqDecision0: EqDecision V
H7: FinSet V Cv
vs: Cv(sum_weights vs + sum_weights โ )%R = sum_weights vs