Users' Mathboxes Mathbox for Thierry Arnoux < Previous   Next >
Nearby theorems
Mirrors  >  Home  >  MPE Home  >  Th. List  >   Mathboxes  >  fsuppcurry2 Structured version   Visualization version   GIF version

Theorem fsuppcurry2 33048
Description: Finite support of a curried function with a constant second argument. (Contributed by Thierry Arnoux, 7-Jul-2023.)
Hypotheses
Ref Expression
fsuppcurry2.g 𝐺 = (𝑥𝐴 ↦ (𝑥𝐹𝐶))
fsuppcurry2.z (𝜑𝑍𝑈)
fsuppcurry2.a (𝜑𝐴𝑉)
fsuppcurry2.b (𝜑𝐵𝑊)
fsuppcurry2.f (𝜑𝐹 Fn (𝐴 × 𝐵))
fsuppcurry2.c (𝜑𝐶𝐵)
fsuppcurry2.1 (𝜑𝐹 finSupp 𝑍)
Assertion
Ref Expression
fsuppcurry2 (𝜑𝐺 finSupp 𝑍)
Distinct variable groups:   𝑥,𝐴   𝑥,𝐶   𝑥,𝐹
Allowed substitution hints:   𝜑(𝑥)   𝐵(𝑥)   𝑈(𝑥)   𝐺(𝑥)   𝑉(𝑥)   𝑊(𝑥)   𝑍(𝑥)

Proof of Theorem fsuppcurry2
Dummy variables 𝑦 𝑧 are mutually distinct and distinct from all other variables.
StepHypRef Expression
1 fsuppcurry2.g . . . 4 𝐺 = (𝑥𝐴 ↦ (𝑥𝐹𝐶))
2 oveq1 7419 . . . . 5 (𝑥 = 𝑦 → (𝑥𝐹𝐶) = (𝑦𝐹𝐶))
32cbvmptv 5216 . . . 4 (𝑥𝐴 ↦ (𝑥𝐹𝐶)) = (𝑦𝐴 ↦ (𝑦𝐹𝐶))
41, 3eqtri 2786 . . 3 𝐺 = (𝑦𝐴 ↦ (𝑦𝐹𝐶))
5 fsuppcurry2.a . . . 4 (𝜑𝐴𝑉)
65mptexd 7224 . . 3 (𝜑 → (𝑦𝐴 ↦ (𝑦𝐹𝐶)) ∈ V)
74, 6eqeltrid 2867 . 2 (𝜑𝐺 ∈ V)
81funmpt2 6577 . . 3 Fun 𝐺
98a1i 11 . 2 (𝜑 → Fun 𝐺)
10 fsuppcurry2.z . 2 (𝜑𝑍𝑈)
11 fo1st 8007 . . . . 5 1st :V–onto→V
12 fofun 6795 . . . . 5 (1st :V–onto→V → Fun 1st )
1311, 12ax-mp 5 . . . 4 Fun 1st
14 funres 6580 . . . 4 (Fun 1st → Fun (1st ↾ (V × V)))
1513, 14mp1i 14 . . 3 (𝜑 → Fun (1st ↾ (V × V)))
16 fsuppcurry2.1 . . . 4 (𝜑𝐹 finSupp 𝑍)
1716fsuppimpd 9330 . . 3 (𝜑 → (𝐹 supp 𝑍) ∈ Fin)
18 imafi 9276 . . 3 ((Fun (1st ↾ (V × V)) ∧ (𝐹 supp 𝑍) ∈ Fin) → ((1st ↾ (V × V)) “ (𝐹 supp 𝑍)) ∈ Fin)
1915, 17, 18syl2anc 595 . 2 (𝜑 → ((1st ↾ (V × V)) “ (𝐹 supp 𝑍)) ∈ Fin)
20 ovexd 7447 . . . 4 ((𝜑𝑦𝐴) → (𝑦𝐹𝐶) ∈ V)
2120, 4fmptd 7111 . . 3 (𝜑𝐺:𝐴⟶V)
22 eldif 3916 . . . 4 (𝑦 ∈ (𝐴 ∖ ((1st ↾ (V × V)) “ (𝐹 supp 𝑍))) ↔ (𝑦𝐴 ∧ ¬ 𝑦 ∈ ((1st ↾ (V × V)) “ (𝐹 supp 𝑍))))
23 simplr 780 . . . . . . . . . . 11 (((𝜑𝑦𝐴) ∧ ¬ (𝐺𝑦) = 𝑍) → 𝑦𝐴)
24 fsuppcurry2.c . . . . . . . . . . . 12 (𝜑𝐶𝐵)
2524ad2antrr 738 . . . . . . . . . . 11 (((𝜑𝑦𝐴) ∧ ¬ (𝐺𝑦) = 𝑍) → 𝐶𝐵)
2623, 25opelxpd 5702 . . . . . . . . . 10 (((𝜑𝑦𝐴) ∧ ¬ (𝐺𝑦) = 𝑍) → ⟨𝑦, 𝐶⟩ ∈ (𝐴 × 𝐵))
27 df-ov 7415 . . . . . . . . . . 11 (𝑦𝐹𝐶) = (𝐹‘⟨𝑦, 𝐶⟩)
28 ovexd 7447 . . . . . . . . . . . . 13 (((𝜑𝑦𝐴) ∧ ¬ (𝐺𝑦) = 𝑍) → (𝑦𝐹𝐶) ∈ V)
291, 2, 23, 28fvmptd3 7015 . . . . . . . . . . . 12 (((𝜑𝑦𝐴) ∧ ¬ (𝐺𝑦) = 𝑍) → (𝐺𝑦) = (𝑦𝐹𝐶))
30 simpr 489 . . . . . . . . . . . . 13 (((𝜑𝑦𝐴) ∧ ¬ (𝐺𝑦) = 𝑍) → ¬ (𝐺𝑦) = 𝑍)
3130neqned 2965 . . . . . . . . . . . 12 (((𝜑𝑦𝐴) ∧ ¬ (𝐺𝑦) = 𝑍) → (𝐺𝑦) ≠ 𝑍)
3229, 31eqnetrrd 3026 . . . . . . . . . . 11 (((𝜑𝑦𝐴) ∧ ¬ (𝐺𝑦) = 𝑍) → (𝑦𝐹𝐶) ≠ 𝑍)
3327, 32eqnetrrid 3033 . . . . . . . . . 10 (((𝜑𝑦𝐴) ∧ ¬ (𝐺𝑦) = 𝑍) → (𝐹‘⟨𝑦, 𝐶⟩) ≠ 𝑍)
34 fsuppcurry2.f . . . . . . . . . . . 12 (𝜑𝐹 Fn (𝐴 × 𝐵))
35 fsuppcurry2.b . . . . . . . . . . . . 13 (𝜑𝐵𝑊)
365, 35xpexd 7751 . . . . . . . . . . . 12 (𝜑 → (𝐴 × 𝐵) ∈ V)
37 elsuppfn 8167 . . . . . . . . . . . 12 ((𝐹 Fn (𝐴 × 𝐵) ∧ (𝐴 × 𝐵) ∈ V ∧ 𝑍𝑈) → (⟨𝑦, 𝐶⟩ ∈ (𝐹 supp 𝑍) ↔ (⟨𝑦, 𝐶⟩ ∈ (𝐴 × 𝐵) ∧ (𝐹‘⟨𝑦, 𝐶⟩) ≠ 𝑍)))
3834, 36, 10, 37syl3anc 1398 . . . . . . . . . . 11 (𝜑 → (⟨𝑦, 𝐶⟩ ∈ (𝐹 supp 𝑍) ↔ (⟨𝑦, 𝐶⟩ ∈ (𝐴 × 𝐵) ∧ (𝐹‘⟨𝑦, 𝐶⟩) ≠ 𝑍)))
3938ad2antrr 738 . . . . . . . . . 10 (((𝜑𝑦𝐴) ∧ ¬ (𝐺𝑦) = 𝑍) → (⟨𝑦, 𝐶⟩ ∈ (𝐹 supp 𝑍) ↔ (⟨𝑦, 𝐶⟩ ∈ (𝐴 × 𝐵) ∧ (𝐹‘⟨𝑦, 𝐶⟩) ≠ 𝑍)))
4026, 33, 39mpbir2and 725 . . . . . . . . 9 (((𝜑𝑦𝐴) ∧ ¬ (𝐺𝑦) = 𝑍) → ⟨𝑦, 𝐶⟩ ∈ (𝐹 supp 𝑍))
41 simpr 489 . . . . . . . . . . 11 ((((𝜑𝑦𝐴) ∧ ¬ (𝐺𝑦) = 𝑍) ∧ 𝑧 = ⟨𝑦, 𝐶⟩) → 𝑧 = ⟨𝑦, 𝐶⟩)
4241fveq2d 6887 . . . . . . . . . 10 ((((𝜑𝑦𝐴) ∧ ¬ (𝐺𝑦) = 𝑍) ∧ 𝑧 = ⟨𝑦, 𝐶⟩) → ((1st ↾ (V × V))‘𝑧) = ((1st ↾ (V × V))‘⟨𝑦, 𝐶⟩))
43 xpss 5679 . . . . . . . . . . . 12 (𝐴 × 𝐵) ⊆ (V × V)
4426adantr 485 . . . . . . . . . . . 12 ((((𝜑𝑦𝐴) ∧ ¬ (𝐺𝑦) = 𝑍) ∧ 𝑧 = ⟨𝑦, 𝐶⟩) → ⟨𝑦, 𝐶⟩ ∈ (𝐴 × 𝐵))
4543, 44sselid 3936 . . . . . . . . . . 11 ((((𝜑𝑦𝐴) ∧ ¬ (𝐺𝑦) = 𝑍) ∧ 𝑧 = ⟨𝑦, 𝐶⟩) → ⟨𝑦, 𝐶⟩ ∈ (V × V))
4645fvresd 6903 . . . . . . . . . 10 ((((𝜑𝑦𝐴) ∧ ¬ (𝐺𝑦) = 𝑍) ∧ 𝑧 = ⟨𝑦, 𝐶⟩) → ((1st ↾ (V × V))‘⟨𝑦, 𝐶⟩) = (1st ‘⟨𝑦, 𝐶⟩))
4723adantr 485 . . . . . . . . . . 11 ((((𝜑𝑦𝐴) ∧ ¬ (𝐺𝑦) = 𝑍) ∧ 𝑧 = ⟨𝑦, 𝐶⟩) → 𝑦𝐴)
4825adantr 485 . . . . . . . . . . 11 ((((𝜑𝑦𝐴) ∧ ¬ (𝐺𝑦) = 𝑍) ∧ 𝑧 = ⟨𝑦, 𝐶⟩) → 𝐶𝐵)
49 op1stg 7999 . . . . . . . . . . 11 ((𝑦𝐴𝐶𝐵) → (1st ‘⟨𝑦, 𝐶⟩) = 𝑦)
5047, 48, 49syl2anc 595 . . . . . . . . . 10 ((((𝜑𝑦𝐴) ∧ ¬ (𝐺𝑦) = 𝑍) ∧ 𝑧 = ⟨𝑦, 𝐶⟩) → (1st ‘⟨𝑦, 𝐶⟩) = 𝑦)
5142, 46, 503eqtrd 2802 . . . . . . . . 9 ((((𝜑𝑦𝐴) ∧ ¬ (𝐺𝑦) = 𝑍) ∧ 𝑧 = ⟨𝑦, 𝐶⟩) → ((1st ↾ (V × V))‘𝑧) = 𝑦)
5240, 51rspcedeq1vd 3589 . . . . . . . 8 (((𝜑𝑦𝐴) ∧ ¬ (𝐺𝑦) = 𝑍) → ∃𝑧 ∈ (𝐹 supp 𝑍)((1st ↾ (V × V))‘𝑧) = 𝑦)
53 fofn 6796 . . . . . . . . . . . . 13 (1st :V–onto→V → 1st Fn V)
54 fnresin 32947 . . . . . . . . . . . . 13 (1st Fn V → (1st ↾ (V × V)) Fn (V ∩ (V × V)))
5511, 53, 54mp2b 10 . . . . . . . . . . . 12 (1st ↾ (V × V)) Fn (V ∩ (V × V))
56 ssv 3962 . . . . . . . . . . . . . 14 (V × V) ⊆ V
57 sseqin2 4177 . . . . . . . . . . . . . 14 ((V × V) ⊆ V ↔ (V ∩ (V × V)) = (V × V))
5856, 57mpbi 233 . . . . . . . . . . . . 13 (V ∩ (V × V)) = (V × V)
5958fneq2i 6635 . . . . . . . . . . . 12 ((1st ↾ (V × V)) Fn (V ∩ (V × V)) ↔ (1st ↾ (V × V)) Fn (V × V))
6055, 59mpbi 233 . . . . . . . . . . 11 (1st ↾ (V × V)) Fn (V × V)
6160a1i 11 . . . . . . . . . 10 (𝜑 → (1st ↾ (V × V)) Fn (V × V))
62 suppssdm 8174 . . . . . . . . . . . 12 (𝐹 supp 𝑍) ⊆ dom 𝐹
6334fndmd 6642 . . . . . . . . . . . 12 (𝜑 → dom 𝐹 = (𝐴 × 𝐵))
6462, 63sseqtrid 3980 . . . . . . . . . . 11 (𝜑 → (𝐹 supp 𝑍) ⊆ (𝐴 × 𝐵))
6564, 43sstrdi 3950 . . . . . . . . . 10 (𝜑 → (𝐹 supp 𝑍) ⊆ (V × V))
6661, 65fvelimabd 6956 . . . . . . . . 9 (𝜑 → (𝑦 ∈ ((1st ↾ (V × V)) “ (𝐹 supp 𝑍)) ↔ ∃𝑧 ∈ (𝐹 supp 𝑍)((1st ↾ (V × V))‘𝑧) = 𝑦))
6766ad2antrr 738 . . . . . . . 8 (((𝜑𝑦𝐴) ∧ ¬ (𝐺𝑦) = 𝑍) → (𝑦 ∈ ((1st ↾ (V × V)) “ (𝐹 supp 𝑍)) ↔ ∃𝑧 ∈ (𝐹 supp 𝑍)((1st ↾ (V × V))‘𝑧) = 𝑦))
6852, 67mpbird 260 . . . . . . 7 (((𝜑𝑦𝐴) ∧ ¬ (𝐺𝑦) = 𝑍) → 𝑦 ∈ ((1st ↾ (V × V)) “ (𝐹 supp 𝑍)))
6968ex 417 . . . . . 6 ((𝜑𝑦𝐴) → (¬ (𝐺𝑦) = 𝑍𝑦 ∈ ((1st ↾ (V × V)) “ (𝐹 supp 𝑍))))
7069con1d 146 . . . . 5 ((𝜑𝑦𝐴) → (¬ 𝑦 ∈ ((1st ↾ (V × V)) “ (𝐹 supp 𝑍)) → (𝐺𝑦) = 𝑍))
7170impr 459 . . . 4 ((𝜑 ∧ (𝑦𝐴 ∧ ¬ 𝑦 ∈ ((1st ↾ (V × V)) “ (𝐹 supp 𝑍)))) → (𝐺𝑦) = 𝑍)
7222, 71sylan2b 605 . . 3 ((𝜑𝑦 ∈ (𝐴 ∖ ((1st ↾ (V × V)) “ (𝐹 supp 𝑍)))) → (𝐺𝑦) = 𝑍)
7321, 72suppss 8191 . 2 (𝜑 → (𝐺 supp 𝑍) ⊆ ((1st ↾ (V × V)) “ (𝐹 supp 𝑍)))
74 suppssfifsupp 9341 . 2 (((𝐺 ∈ V ∧ Fun 𝐺𝑍𝑈) ∧ (((1st ↾ (V × V)) “ (𝐹 supp 𝑍)) ∈ Fin ∧ (𝐺 supp 𝑍) ⊆ ((1st ↾ (V × V)) “ (𝐹 supp 𝑍)))) → 𝐺 finSupp 𝑍)
757, 9, 10, 19, 73, 74syl32anc 1405 1 (𝜑𝐺 finSupp 𝑍)
Colors of variables: wff setvar class
Syntax hints:  ¬ wn 3  wi 4  wb 209  wa 400   = wceq 1570  wcel 2143  wne 2958  wrex 3089  Vcvv 3455  cdif 3903  cin 3905  wss 3906  cop 4596   class class class wbr 5110  cmpt 5193   × cxp 5661  dom cdm 5663  cres 5665  cima 5666  Fun wfun 6532   Fn wfn 6533  ontowfo 6536  cfv 6538  (class class class)co 7412  1st c1st 7985   supp csupp 8157  Fincfn 8944   finSupp cfsupp 9322
This theorem was proved from axioms:  ax-mp 5  ax-1 6  ax-2 7  ax-3 8  ax-gen 1825  ax-4 1839  ax-5 1940  ax-6 1997  ax-7 2038  ax-8 2145  ax-9 2153  ax-10 2176  ax-11 2192  ax-12 2213  ax-ext 2735  ax-rep 5239  ax-sep 5258  ax-nul 5270  ax-pow 5338  ax-pr 5406  ax-un 7734
This theorem depends on definitions:  df-bi 210  df-an 401  df-or 861  df-3or 1104  df-3an 1105  df-tru 1573  df-fal 1583  df-ex 1810  df-nf 1814  df-sb 2097  df-mo 2567  df-eu 2597  df-clab 2742  df-cleq 2755  df-clel 2838  df-nfc 2912  df-ne 2959  df-ral 3080  df-rex 3090  df-reu 3370  df-rab 3417  df-v 3457  df-sbc 3746  df-csb 3855  df-dif 3909  df-un 3911  df-in 3913  df-ss 3923  df-pss 3926  df-nul 4288  df-if 4489  df-pw 4565  df-sn 4591  df-pr 4593  df-op 4597  df-uni 4874  df-iun 4959  df-br 5111  df-opab 5175  df-mpt 5194  df-tr 5220  df-id 5558  df-eprel 5563  df-po 5571  df-so 5572  df-fr 5616  df-we 5618  df-xp 5669  df-rel 5670  df-cnv 5671  df-co 5672  df-dm 5673  df-rn 5674  df-res 5675  df-ima 5676  df-ord 6365  df-on 6366  df-lim 6367  df-suc 6368  df-iota 6494  df-fun 6540  df-fn 6541  df-f 6542  df-f1 6543  df-fo 6544  df-f1o 6545  df-fv 6546  df-ov 7415  df-oprab 7416  df-mpo 7417  df-om 7864  df-1st 7987  df-supp 8158  df-1o 8454  df-en 8945  df-dom 8946  df-fin 8948  df-fsupp 9323
This theorem is referenced by: (None)
  Copyright terms: Public domain W3C validator