Metamath Proof Explorer


Theorem psrbagcon

Description: The analogue of the statement " 0 <_ G <_ F implies 0 <_ F - G <_ F " for finite bags. (Contributed by Mario Carneiro, 29-Dec-2014)

Ref Expression
Hypothesis psrbag.d 𝐷 = { 𝑓 ∈ ( ℕ0m 𝐼 ) ∣ ( 𝑓 “ ℕ ) ∈ Fin }
Assertion psrbagcon ( ( 𝐼𝑉 ∧ ( 𝐹𝐷𝐺 : 𝐼 ⟶ ℕ0𝐺r𝐹 ) ) → ( ( 𝐹f𝐺 ) ∈ 𝐷 ∧ ( 𝐹f𝐺 ) ∘r𝐹 ) )

Proof

Step Hyp Ref Expression
1 psrbag.d 𝐷 = { 𝑓 ∈ ( ℕ0m 𝐼 ) ∣ ( 𝑓 “ ℕ ) ∈ Fin }
2 simpr1 ( ( 𝐼𝑉 ∧ ( 𝐹𝐷𝐺 : 𝐼 ⟶ ℕ0𝐺r𝐹 ) ) → 𝐹𝐷 )
3 1 psrbag ( 𝐼𝑉 → ( 𝐹𝐷 ↔ ( 𝐹 : 𝐼 ⟶ ℕ0 ∧ ( 𝐹 “ ℕ ) ∈ Fin ) ) )
4 3 adantr ( ( 𝐼𝑉 ∧ ( 𝐹𝐷𝐺 : 𝐼 ⟶ ℕ0𝐺r𝐹 ) ) → ( 𝐹𝐷 ↔ ( 𝐹 : 𝐼 ⟶ ℕ0 ∧ ( 𝐹 “ ℕ ) ∈ Fin ) ) )
5 2 4 mpbid ( ( 𝐼𝑉 ∧ ( 𝐹𝐷𝐺 : 𝐼 ⟶ ℕ0𝐺r𝐹 ) ) → ( 𝐹 : 𝐼 ⟶ ℕ0 ∧ ( 𝐹 “ ℕ ) ∈ Fin ) )
6 5 simpld ( ( 𝐼𝑉 ∧ ( 𝐹𝐷𝐺 : 𝐼 ⟶ ℕ0𝐺r𝐹 ) ) → 𝐹 : 𝐼 ⟶ ℕ0 )
7 6 ffnd ( ( 𝐼𝑉 ∧ ( 𝐹𝐷𝐺 : 𝐼 ⟶ ℕ0𝐺r𝐹 ) ) → 𝐹 Fn 𝐼 )
8 simpr2 ( ( 𝐼𝑉 ∧ ( 𝐹𝐷𝐺 : 𝐼 ⟶ ℕ0𝐺r𝐹 ) ) → 𝐺 : 𝐼 ⟶ ℕ0 )
9 8 ffnd ( ( 𝐼𝑉 ∧ ( 𝐹𝐷𝐺 : 𝐼 ⟶ ℕ0𝐺r𝐹 ) ) → 𝐺 Fn 𝐼 )
10 simpl ( ( 𝐼𝑉 ∧ ( 𝐹𝐷𝐺 : 𝐼 ⟶ ℕ0𝐺r𝐹 ) ) → 𝐼𝑉 )
11 inidm ( 𝐼𝐼 ) = 𝐼
12 7 9 10 10 11 offn ( ( 𝐼𝑉 ∧ ( 𝐹𝐷𝐺 : 𝐼 ⟶ ℕ0𝐺r𝐹 ) ) → ( 𝐹f𝐺 ) Fn 𝐼 )
13 eqidd ( ( ( 𝐼𝑉 ∧ ( 𝐹𝐷𝐺 : 𝐼 ⟶ ℕ0𝐺r𝐹 ) ) ∧ 𝑥𝐼 ) → ( 𝐹𝑥 ) = ( 𝐹𝑥 ) )
14 eqidd ( ( ( 𝐼𝑉 ∧ ( 𝐹𝐷𝐺 : 𝐼 ⟶ ℕ0𝐺r𝐹 ) ) ∧ 𝑥𝐼 ) → ( 𝐺𝑥 ) = ( 𝐺𝑥 ) )
15 7 9 10 10 11 13 14 ofval ( ( ( 𝐼𝑉 ∧ ( 𝐹𝐷𝐺 : 𝐼 ⟶ ℕ0𝐺r𝐹 ) ) ∧ 𝑥𝐼 ) → ( ( 𝐹f𝐺 ) ‘ 𝑥 ) = ( ( 𝐹𝑥 ) − ( 𝐺𝑥 ) ) )
16 simpr3 ( ( 𝐼𝑉 ∧ ( 𝐹𝐷𝐺 : 𝐼 ⟶ ℕ0𝐺r𝐹 ) ) → 𝐺r𝐹 )
17 9 7 10 10 11 14 13 ofrfval ( ( 𝐼𝑉 ∧ ( 𝐹𝐷𝐺 : 𝐼 ⟶ ℕ0𝐺r𝐹 ) ) → ( 𝐺r𝐹 ↔ ∀ 𝑥𝐼 ( 𝐺𝑥 ) ≤ ( 𝐹𝑥 ) ) )
18 16 17 mpbid ( ( 𝐼𝑉 ∧ ( 𝐹𝐷𝐺 : 𝐼 ⟶ ℕ0𝐺r𝐹 ) ) → ∀ 𝑥𝐼 ( 𝐺𝑥 ) ≤ ( 𝐹𝑥 ) )
19 18 r19.21bi ( ( ( 𝐼𝑉 ∧ ( 𝐹𝐷𝐺 : 𝐼 ⟶ ℕ0𝐺r𝐹 ) ) ∧ 𝑥𝐼 ) → ( 𝐺𝑥 ) ≤ ( 𝐹𝑥 ) )
20 8 ffvelrnda ( ( ( 𝐼𝑉 ∧ ( 𝐹𝐷𝐺 : 𝐼 ⟶ ℕ0𝐺r𝐹 ) ) ∧ 𝑥𝐼 ) → ( 𝐺𝑥 ) ∈ ℕ0 )
21 6 ffvelrnda ( ( ( 𝐼𝑉 ∧ ( 𝐹𝐷𝐺 : 𝐼 ⟶ ℕ0𝐺r𝐹 ) ) ∧ 𝑥𝐼 ) → ( 𝐹𝑥 ) ∈ ℕ0 )
22 nn0sub ( ( ( 𝐺𝑥 ) ∈ ℕ0 ∧ ( 𝐹𝑥 ) ∈ ℕ0 ) → ( ( 𝐺𝑥 ) ≤ ( 𝐹𝑥 ) ↔ ( ( 𝐹𝑥 ) − ( 𝐺𝑥 ) ) ∈ ℕ0 ) )
23 20 21 22 syl2anc ( ( ( 𝐼𝑉 ∧ ( 𝐹𝐷𝐺 : 𝐼 ⟶ ℕ0𝐺r𝐹 ) ) ∧ 𝑥𝐼 ) → ( ( 𝐺𝑥 ) ≤ ( 𝐹𝑥 ) ↔ ( ( 𝐹𝑥 ) − ( 𝐺𝑥 ) ) ∈ ℕ0 ) )
24 19 23 mpbid ( ( ( 𝐼𝑉 ∧ ( 𝐹𝐷𝐺 : 𝐼 ⟶ ℕ0𝐺r𝐹 ) ) ∧ 𝑥𝐼 ) → ( ( 𝐹𝑥 ) − ( 𝐺𝑥 ) ) ∈ ℕ0 )
25 15 24 eqeltrd ( ( ( 𝐼𝑉 ∧ ( 𝐹𝐷𝐺 : 𝐼 ⟶ ℕ0𝐺r𝐹 ) ) ∧ 𝑥𝐼 ) → ( ( 𝐹f𝐺 ) ‘ 𝑥 ) ∈ ℕ0 )
26 25 ralrimiva ( ( 𝐼𝑉 ∧ ( 𝐹𝐷𝐺 : 𝐼 ⟶ ℕ0𝐺r𝐹 ) ) → ∀ 𝑥𝐼 ( ( 𝐹f𝐺 ) ‘ 𝑥 ) ∈ ℕ0 )
27 ffnfv ( ( 𝐹f𝐺 ) : 𝐼 ⟶ ℕ0 ↔ ( ( 𝐹f𝐺 ) Fn 𝐼 ∧ ∀ 𝑥𝐼 ( ( 𝐹f𝐺 ) ‘ 𝑥 ) ∈ ℕ0 ) )
28 12 26 27 sylanbrc ( ( 𝐼𝑉 ∧ ( 𝐹𝐷𝐺 : 𝐼 ⟶ ℕ0𝐺r𝐹 ) ) → ( 𝐹f𝐺 ) : 𝐼 ⟶ ℕ0 )
29 5 simprd ( ( 𝐼𝑉 ∧ ( 𝐹𝐷𝐺 : 𝐼 ⟶ ℕ0𝐺r𝐹 ) ) → ( 𝐹 “ ℕ ) ∈ Fin )
30 20 nn0ge0d ( ( ( 𝐼𝑉 ∧ ( 𝐹𝐷𝐺 : 𝐼 ⟶ ℕ0𝐺r𝐹 ) ) ∧ 𝑥𝐼 ) → 0 ≤ ( 𝐺𝑥 ) )
31 nn0re ( ( 𝐹𝑥 ) ∈ ℕ0 → ( 𝐹𝑥 ) ∈ ℝ )
32 nn0re ( ( 𝐺𝑥 ) ∈ ℕ0 → ( 𝐺𝑥 ) ∈ ℝ )
33 subge02 ( ( ( 𝐹𝑥 ) ∈ ℝ ∧ ( 𝐺𝑥 ) ∈ ℝ ) → ( 0 ≤ ( 𝐺𝑥 ) ↔ ( ( 𝐹𝑥 ) − ( 𝐺𝑥 ) ) ≤ ( 𝐹𝑥 ) ) )
34 31 32 33 syl2an ( ( ( 𝐹𝑥 ) ∈ ℕ0 ∧ ( 𝐺𝑥 ) ∈ ℕ0 ) → ( 0 ≤ ( 𝐺𝑥 ) ↔ ( ( 𝐹𝑥 ) − ( 𝐺𝑥 ) ) ≤ ( 𝐹𝑥 ) ) )
35 21 20 34 syl2anc ( ( ( 𝐼𝑉 ∧ ( 𝐹𝐷𝐺 : 𝐼 ⟶ ℕ0𝐺r𝐹 ) ) ∧ 𝑥𝐼 ) → ( 0 ≤ ( 𝐺𝑥 ) ↔ ( ( 𝐹𝑥 ) − ( 𝐺𝑥 ) ) ≤ ( 𝐹𝑥 ) ) )
36 30 35 mpbid ( ( ( 𝐼𝑉 ∧ ( 𝐹𝐷𝐺 : 𝐼 ⟶ ℕ0𝐺r𝐹 ) ) ∧ 𝑥𝐼 ) → ( ( 𝐹𝑥 ) − ( 𝐺𝑥 ) ) ≤ ( 𝐹𝑥 ) )
37 36 ralrimiva ( ( 𝐼𝑉 ∧ ( 𝐹𝐷𝐺 : 𝐼 ⟶ ℕ0𝐺r𝐹 ) ) → ∀ 𝑥𝐼 ( ( 𝐹𝑥 ) − ( 𝐺𝑥 ) ) ≤ ( 𝐹𝑥 ) )
38 12 7 10 10 11 15 13 ofrfval ( ( 𝐼𝑉 ∧ ( 𝐹𝐷𝐺 : 𝐼 ⟶ ℕ0𝐺r𝐹 ) ) → ( ( 𝐹f𝐺 ) ∘r𝐹 ↔ ∀ 𝑥𝐼 ( ( 𝐹𝑥 ) − ( 𝐺𝑥 ) ) ≤ ( 𝐹𝑥 ) ) )
39 37 38 mpbird ( ( 𝐼𝑉 ∧ ( 𝐹𝐷𝐺 : 𝐼 ⟶ ℕ0𝐺r𝐹 ) ) → ( 𝐹f𝐺 ) ∘r𝐹 )
40 1 psrbaglesupp ( ( 𝐼𝑉 ∧ ( 𝐹𝐷 ∧ ( 𝐹f𝐺 ) : 𝐼 ⟶ ℕ0 ∧ ( 𝐹f𝐺 ) ∘r𝐹 ) ) → ( ( 𝐹f𝐺 ) “ ℕ ) ⊆ ( 𝐹 “ ℕ ) )
41 10 2 28 39 40 syl13anc ( ( 𝐼𝑉 ∧ ( 𝐹𝐷𝐺 : 𝐼 ⟶ ℕ0𝐺r𝐹 ) ) → ( ( 𝐹f𝐺 ) “ ℕ ) ⊆ ( 𝐹 “ ℕ ) )
42 29 41 ssfid ( ( 𝐼𝑉 ∧ ( 𝐹𝐷𝐺 : 𝐼 ⟶ ℕ0𝐺r𝐹 ) ) → ( ( 𝐹f𝐺 ) “ ℕ ) ∈ Fin )
43 1 psrbag ( 𝐼𝑉 → ( ( 𝐹f𝐺 ) ∈ 𝐷 ↔ ( ( 𝐹f𝐺 ) : 𝐼 ⟶ ℕ0 ∧ ( ( 𝐹f𝐺 ) “ ℕ ) ∈ Fin ) ) )
44 43 adantr ( ( 𝐼𝑉 ∧ ( 𝐹𝐷𝐺 : 𝐼 ⟶ ℕ0𝐺r𝐹 ) ) → ( ( 𝐹f𝐺 ) ∈ 𝐷 ↔ ( ( 𝐹f𝐺 ) : 𝐼 ⟶ ℕ0 ∧ ( ( 𝐹f𝐺 ) “ ℕ ) ∈ Fin ) ) )
45 28 42 44 mpbir2and ( ( 𝐼𝑉 ∧ ( 𝐹𝐷𝐺 : 𝐼 ⟶ ℕ0𝐺r𝐹 ) ) → ( 𝐹f𝐺 ) ∈ 𝐷 )
46 45 39 jca ( ( 𝐼𝑉 ∧ ( 𝐹𝐷𝐺 : 𝐼 ⟶ ℕ0𝐺r𝐹 ) ) → ( ( 𝐹f𝐺 ) ∈ 𝐷 ∧ ( 𝐹f𝐺 ) ∘r𝐹 ) )