Metamath Proof Explorer


Theorem fsuppcurry1

Description: Finite support of a curried function with a constant first argument. (Contributed by Thierry Arnoux, 7-Jul-2023)

Ref Expression
Hypotheses fsuppcurry1.g ⊢ G = x ∈ B ⟼ C F x
fsuppcurry1.z ⊢ φ → Z ∈ U
fsuppcurry1.a ⊢ φ → A ∈ V
fsuppcurry1.b ⊢ φ → B ∈ W
fsuppcurry1.f ⊢ φ → F Fn A × B
fsuppcurry1.c ⊢ φ → C ∈ A
fsuppcurry1.1 ⊢ φ → finSupp Z⁡ F
Assertion fsuppcurry1 ⊢ φ → finSupp Z⁡ G

Proof

Step Hyp Ref Expression
1 fsuppcurry1.g ⊢ G = x ∈ B ⟼ C F x
2 fsuppcurry1.z ⊢ φ → Z ∈ U
3 fsuppcurry1.a ⊢ φ → A ∈ V
4 fsuppcurry1.b ⊢ φ → B ∈ W
5 fsuppcurry1.f ⊢ φ → F Fn A × B
6 fsuppcurry1.c ⊢ φ → C ∈ A
7 fsuppcurry1.1 ⊢ φ → finSupp Z⁡ F
8 oveq2 ⊢ x = y → C F x = C F y
9 8 cbvmptv ⊢ x ∈ B ⟼ C F x = y ∈ B ⟼ C F y
10 1 9 eqtri ⊢ G = y ∈ B ⟼ C F y
11 4 mptexd ⊢ φ → y ∈ B ⟼ C F y ∈ V
12 10 11 eqeltrid ⊢ φ → G ∈ V
13 1 funmpt2 ⊢ Fun ⁡ G
14 13 a1i ⊢ φ → Fun ⁡ G
15 fo2nd ⊢ 2 nd : V ⟶ onto V
16 fofun ⊢ 2 nd : V ⟶ onto V → Fun ⁡ 2 nd
17 15 16 ax-mp ⊢ Fun ⁡ 2 nd
18 funres ⊢ Fun ⁡ 2 nd → Fun ⁡ 2 nd ↾ V × V
19 17 18 mp1i ⊢ φ → Fun ⁡ 2 nd ↾ V × V
20 7 fsuppimpd ⊢ φ → F supp Z ∈ Fin
21 imafi ⊢ Fun ⁡ 2 nd ↾ V × V ∧ F supp Z ∈ Fin → 2 nd ↾ V × V F supp Z ∈ Fin
22 19 20 21 syl2anc ⊢ φ → 2 nd ↾ V × V F supp Z ∈ Fin
23 ovexd ⊢ φ ∧ y ∈ B → C F y ∈ V
24 23 10 fmptd ⊢ φ → G : B ⟶ V
25 eldif ⊢ y ∈ B ∖ 2 nd ↾ V × V F supp Z ↔ y ∈ B ∧ ¬ y ∈ 2 nd ↾ V × V F supp Z
26 6 ad2antrr ⊢ φ ∧ y ∈ B ∧ ¬ G ⁡ y = Z → C ∈ A
27 simplr ⊢ φ ∧ y ∈ B ∧ ¬ G ⁡ y = Z → y ∈ B
28 26 27 opelxpd ⊢ φ ∧ y ∈ B ∧ ¬ G ⁡ y = Z → C y ∈ A × B
29 df-ov ⊢ C F y = F ⁡ C y
30 ovexd ⊢ φ ∧ y ∈ B ∧ ¬ G ⁡ y = Z → C F y ∈ V
31 1 8 27 30 fvmptd3 ⊢ φ ∧ y ∈ B ∧ ¬ G ⁡ y = Z → G ⁡ y = C F y
32 simpr ⊢ φ ∧ y ∈ B ∧ ¬ G ⁡ y = Z → ¬ G ⁡ y = Z
33 32 neqned ⊢ φ ∧ y ∈ B ∧ ¬ G ⁡ y = Z → G ⁡ y ≠ Z
34 31 33 eqnetrrd ⊢ φ ∧ y ∈ B ∧ ¬ G ⁡ y = Z → C F y ≠ Z
35 29 34 eqnetrrid ⊢ φ ∧ y ∈ B ∧ ¬ G ⁡ y = Z → F ⁡ C y ≠ Z
36 3 4 xpexd ⊢ φ → A × B ∈ V
37 elsuppfn ⊢ F Fn A × B ∧ A × B ∈ V ∧ Z ∈ U → C y ∈ supp Z⁡ F ↔ C y ∈ A × B ∧ F ⁡ C y ≠ Z
38 5 36 2 37 syl3anc ⊢ φ → C y ∈ supp Z⁡ F ↔ C y ∈ A × B ∧ F ⁡ C y ≠ Z
39 38 ad2antrr ⊢ φ ∧ y ∈ B ∧ ¬ G ⁡ y = Z → C y ∈ supp Z⁡ F ↔ C y ∈ A × B ∧ F ⁡ C y ≠ Z
40 28 35 39 mpbir2and ⊢ φ ∧ y ∈ B ∧ ¬ G ⁡ y = Z → C y ∈ supp Z⁡ F
41 simpr ⊢ φ ∧ y ∈ B ∧ ¬ G ⁡ y = Z ∧ z = C y → z = C y
42 41 fveq2d ⊢ φ ∧ y ∈ B ∧ ¬ G ⁡ y = Z ∧ z = C y → 2 nd ↾ V × V ⁡ z = 2 nd ↾ V × V ⁡ C y
43 xpss ⊢ A × B ⊆ V × V
44 28 adantr ⊢ φ ∧ y ∈ B ∧ ¬ G ⁡ y = Z ∧ z = C y → C y ∈ A × B
45 43 44 sselid ⊢ φ ∧ y ∈ B ∧ ¬ G ⁡ y = Z ∧ z = C y → C y ∈ V × V
46 45 fvresd ⊢ φ ∧ y ∈ B ∧ ¬ G ⁡ y = Z ∧ z = C y → 2 nd ↾ V × V ⁡ C y = 2 nd ⁡ C y
47 26 adantr ⊢ φ ∧ y ∈ B ∧ ¬ G ⁡ y = Z ∧ z = C y → C ∈ A
48 27 adantr ⊢ φ ∧ y ∈ B ∧ ¬ G ⁡ y = Z ∧ z = C y → y ∈ B
49 op2ndg ⊢ C ∈ A ∧ y ∈ B → 2 nd ⁡ C y = y
50 47 48 49 syl2anc ⊢ φ ∧ y ∈ B ∧ ¬ G ⁡ y = Z ∧ z = C y → 2 nd ⁡ C y = y
51 42 46 50 3eqtrd ⊢ φ ∧ y ∈ B ∧ ¬ G ⁡ y = Z ∧ z = C y → 2 nd ↾ V × V ⁡ z = y
52 40 51 rspcedeqvd ⊢ φ ∧ y ∈ B ∧ ¬ G ⁡ y = Z → ∃ z ∈ supp Z⁡ F 2 nd ↾ V × V ⁡ z = y
53 fofn ⊢ 2 nd : V ⟶ onto V → 2 nd Fn V
54 fnresin ⊢ 2 nd Fn V → 2 nd ↾ V × V Fn V ∩ V × V
55 15 53 54 mp2b ⊢ 2 nd ↾ V × V Fn V ∩ V × V
56 ssv ⊢ V × V ⊆ V
57 sseqin2 ⊢ V × V ⊆ V ↔ V ∩ V × V = V × V
58 56 57 mpbi ⊢ V ∩ V × V = V × V
59 58 fneq2i ⊢ 2 nd ↾ V × V Fn V ∩ V × V ↔ 2 nd ↾ V × V Fn V × V
60 55 59 mpbi ⊢ 2 nd ↾ V × V Fn V × V
61 60 a1i ⊢ φ → 2 nd ↾ V × V Fn V × V
62 suppssdm ⊢ F supp Z ⊆ dom ⁡ F
63 5 fndmd ⊢ φ → dom ⁡ F = A × B
64 62 63 sseqtrid ⊢ φ → F supp Z ⊆ A × B
65 64 43 sstrdi ⊢ φ → F supp Z ⊆ V × V
66 61 65 fvelimabd ⊢ φ → y ∈ 2 nd ↾ V × V F supp Z ↔ ∃ z ∈ supp Z⁡ F 2 nd ↾ V × V ⁡ z = y
67 66 ad2antrr ⊢ φ ∧ y ∈ B ∧ ¬ G ⁡ y = Z → y ∈ 2 nd ↾ V × V F supp Z ↔ ∃ z ∈ supp Z⁡ F 2 nd ↾ V × V ⁡ z = y
68 52 67 mpbird ⊢ φ ∧ y ∈ B ∧ ¬ G ⁡ y = Z → y ∈ 2 nd ↾ V × V F supp Z
69 68 ex ⊢ φ ∧ y ∈ B → ¬ G ⁡ y = Z → y ∈ 2 nd ↾ V × V F supp Z
70 69 con1d ⊢ φ ∧ y ∈ B → ¬ y ∈ 2 nd ↾ V × V F supp Z → G ⁡ y = Z
71 70 impr ⊢ φ ∧ y ∈ B ∧ ¬ y ∈ 2 nd ↾ V × V F supp Z → G ⁡ y = Z
72 25 71 sylan2b ⊢ φ ∧ y ∈ B ∖ 2 nd ↾ V × V F supp Z → G ⁡ y = Z
73 24 72 suppss ⊢ φ → G supp Z ⊆ 2 nd ↾ V × V F supp Z
74 suppssfifsupp ⊢ G ∈ V ∧ Fun ⁡ G ∧ Z ∈ U ∧ 2 nd ↾ V × V F supp Z ∈ Fin ∧ G supp Z ⊆ 2 nd ↾ V × V F supp Z → finSupp Z⁡ G
75 12 14 2 22 73 74 syl32anc ⊢ φ → finSupp Z⁡ G