Proof of Theorem fvco
| Step | Hyp | Ref
| Expression |
| 1 | | dmfco 2864 |
. . . . . . . . 9
⊢ ((Fun G ∧ A ∈
dom G) → (A ∈ dom (F
∘ G) ↔ (G ‘A)
∈ dom F)) |
| 2 | 1 | anbi2d 468 |
. . . . . . . 8
⊢ ((Fun G ∧ A ∈
dom G) → ((Fun F ∧ A ∈
dom (F ∘ G)) ↔ (Fun F ∧ (G
‘A) ∈ dom F))) |
| 3 | | fvex 2838 |
. . . . . . . . . . . 12
⊢ (F
‘(G ‘A)) ∈ V |
| 4 | | opelcog 2511 |
. . . . . . . . . . . 12
⊢ ((A
∈ dom G ∧ (F ‘(G
‘A)) ∈ V) →
(〈A, (F ‘(G
‘A))〉 ∈ (F ∘ G)
↔ ∃z(〈A, z〉
∈ G ∧ 〈z, (F
‘(G ‘A))〉 ∈ F))) |
| 5 | 3, 4 | mpan2 519 |
. . . . . . . . . . 11
⊢ (A
∈ dom G → (〈A, (F
‘(G ‘A))〉 ∈ (F ∘ G)
↔ ∃z(〈A, z〉
∈ G ∧ 〈z, (F
‘(G ‘A))〉 ∈ F))) |
| 6 | 5 | adantl 305 |
. . . . . . . . . 10
⊢ ((Fun G ∧ A ∈
dom G) → (〈A, (F
‘(G ‘A))〉 ∈ (F ∘ G)
↔ ∃z(〈A, z〉
∈ G ∧ 〈z, (F
‘(G ‘A))〉 ∈ F))) |
| 7 | | visset 1350 |
. . . . . . . . . . . . . . 15
⊢ z
∈ V |
| 8 | 7 | funfvop 2857 |
. . . . . . . . . . . . . 14
⊢ ((Fun G ∧ A ∈
dom G) → ((G ‘A) =
z ↔ 〈A, z〉
∈ G)) |
| 9 | | cleqcom 1103 |
. . . . . . . . . . . . . 14
⊢ (z =
(G ‘A) ↔ (G
‘A) = z) |
| 10 | 8, 9 | syl5bb 410 |
. . . . . . . . . . . . 13
⊢ ((Fun G ∧ A ∈
dom G) → (z = (G
‘A) ↔ 〈A, z〉
∈ G)) |
| 11 | 10 | anbi1d 469 |
. . . . . . . . . . . 12
⊢ ((Fun G ∧ A ∈
dom G) → ((z = (G
‘A) ∧ 〈z, (F
‘(G ‘A))〉 ∈ F) ↔ (〈A, z〉
∈ G ∧ 〈z, (F
‘(G ‘A))〉 ∈ F))) |
| 12 | 11 | biexdv 936 |
. . . . . . . . . . 11
⊢ ((Fun G ∧ A ∈
dom G) → (∃z(z = (G ‘A)
∧ 〈z, (F ‘(G
‘A))〉 ∈ F) ↔ ∃z(〈A,
z〉 ∈ G ∧ 〈z,
(F ‘(G ‘A))〉 ∈ F))) |
| 13 | | fvex 2838 |
. . . . . . . . . . . 12
⊢ (G
‘A) ∈ V |
| 14 | | opeq1 1876 |
. . . . . . . . . . . . 13
⊢ (z =
(G ‘A) → 〈z, (F
‘(G ‘A))〉 = 〈(G ‘A),
(F ‘(G ‘A))〉) |
| 15 | 14 | eleq1d 1155 |
. . . . . . . . . . . 12
⊢ (z =
(G ‘A) → (〈z, (F
‘(G ‘A))〉 ∈ F ↔ 〈(G ‘A),
(F ‘(G ‘A))〉 ∈ F)) |
| 16 | 13, 15 | ceqsexv 1371 |
. . . . . . . . . . 11
⊢ (∃z(z = (G ‘A)
∧ 〈z, (F ‘(G
‘A))〉 ∈ F) ↔ 〈(G ‘A),
(F ‘(G ‘A))〉 ∈ F) |
| 17 | 12, 16 | syl5bbr 412 |
. . . . . . . . . 10
⊢ ((Fun G ∧ A ∈
dom G) → (〈(G ‘A),
(F ‘(G ‘A))〉 ∈ F ↔ ∃z(〈A,
z〉 ∈ G ∧ 〈z,
(F ‘(G ‘A))〉 ∈ F))) |
| 18 | 6, 17 | bitr4d 409 |
. . . . . . . . 9
⊢ ((Fun G ∧ A ∈
dom G) → (〈A, (F
‘(G ‘A))〉 ∈ (F ∘ G)
↔ 〈(G ‘A), (F
‘(G ‘A))〉 ∈ F)) |
| 19 | | cleqid 1102 |
. . . . . . . . . 10
⊢ (F
‘(G ‘A)) = (F
‘(G ‘A)) |
| 20 | 3 | funfvop 2857 |
. . . . . . . . . 10
⊢ ((Fun F ∧ (G
‘A) ∈ dom F) → ((F
‘(G ‘A)) = (F
‘(G ‘A)) ↔ 〈(G ‘A),
(F ‘(G ‘A))〉 ∈ F)) |
| 21 | 19, 20 | mpbii 168 |
. . . . . . . . 9
⊢ ((Fun F ∧ (G
‘A) ∈ dom F) → 〈(G ‘A),
(F ‘(G ‘A))〉 ∈ F) |
| 22 | 18, 21 | syl5bir 184 |
. . . . . . . 8
⊢ ((Fun G ∧ A ∈
dom G) → ((Fun F ∧ (G
‘A) ∈ dom F) → 〈A, (F
‘(G ‘A))〉 ∈ (F ∘ G))) |
| 23 | 2, 22 | sylbid 178 |
. . . . . . 7
⊢ ((Fun G ∧ A ∈
dom G) → ((Fun F ∧ A ∈
dom (F ∘ G)) → 〈A, (F
‘(G ‘A))〉 ∈ (F ∘ G))) |
| 24 | 23 | exp4b 296 |
. . . . . 6
⊢ (Fun G
→ (A ∈ dom G → (Fun F
→ (A ∈ dom (F ∘ G)
→ 〈A, (F ‘(G
‘A))〉 ∈ (F ∘ G))))) |
| 25 | 24 | com3r 35 |
. . . . 5
⊢ (Fun F
→ (Fun G → (A ∈ dom G
→ (A ∈ dom (F ∘ G)
→ 〈A, (F ‘(G
‘A))〉 ∈ (F ∘ G))))) |
| 26 | 25 | imp41 286 |
. . . 4
⊢ ((((Fun F ∧ Fun G)
∧ A ∈ dom G) ∧ A
∈ dom (F ∘ G)) → 〈A, (F
‘(G ‘A))〉 ∈ (F ∘ G)) |
| 27 | 3 | funfvop 2857 |
. . . . . 6
⊢ ((Fun (F ∘ G)
∧ A ∈ dom (F ∘ G))
→ (((F ∘ G) ‘A) =
(F ‘(G ‘A))
↔ 〈A, (F ‘(G
‘A))〉 ∈ (F ∘ G))) |
| 28 | | funco 2696 |
. . . . . 6
⊢ ((Fun F ∧ Fun G)
→ Fun (F ∘ G)) |
| 29 | 27, 28 | sylan 343 |
. . . . 5
⊢ (((Fun F ∧ Fun G)
∧ A ∈ dom (F ∘ G))
→ (((F ∘ G) ‘A) =
(F ‘(G ‘A))
↔ 〈A, (F ‘(G
‘A))〉 ∈ (F ∘ G))) |
| 30 | 29 | adantlr 310 |
. . . 4
⊢ ((((Fun F ∧ Fun G)
∧ A ∈ dom G) ∧ A
∈ dom (F ∘ G)) → (((F
∘ G) ‘A) = (F
‘(G ‘A)) ↔ 〈A, (F
‘(G ‘A))〉 ∈ (F ∘ G))) |
| 31 | 26, 30 | mpbird 171 |
. . 3
⊢ ((((Fun F ∧ Fun G)
∧ A ∈ dom G) ∧ A
∈ dom (F ∘ G)) → ((F
∘ G) ‘A) = (F
‘(G ‘A))) |
| 32 | 31 | exp 291 |
. 2
⊢ (((Fun F ∧ Fun G)
∧ A ∈ dom G) → (A
∈ dom (F ∘ G) → ((F
∘ G) ‘A) = (F
‘(G ‘A)))) |
| 33 | | ndmfv 2848 |
. . . . . 6
⊢ (¬ A ∈ dom (F
∘ G) → ((F ∘ G)
‘A) = ∅) |
| 34 | 33 | adantl 305 |
. . . . 5
⊢ (((Fun G ∧ A ∈
dom G) ∧ ¬ A ∈ dom (F
∘ G)) → ((F ∘ G)
‘A) = ∅) |
| 35 | 1 | negbid 463 |
. . . . . . 7
⊢ ((Fun G ∧ A ∈
dom G) → (¬ A ∈ dom (F
∘ G) ↔ ¬ (G ‘A)
∈ dom F)) |
| 36 | | ndmfv 2848 |
. . . . . . 7
⊢ (¬ (G ‘A)
∈ dom F → (F ‘(G
‘A)) = ∅) |
| 37 | 35, 36 | syl6bi 187 |
. . . . . 6
⊢ ((Fun G ∧ A ∈
dom G) → (¬ A ∈ dom (F
∘ G) → (F ‘(G
‘A)) = ∅)) |
| 38 | 37 | imp 277 |
. . . . 5
⊢ (((Fun G ∧ A ∈
dom G) ∧ ¬ A ∈ dom (F
∘ G)) → (F ‘(G
‘A)) = ∅) |
| 39 | 34, 38 | eqtr4d 1131 |
. . . 4
⊢ (((Fun G ∧ A ∈
dom G) ∧ ¬ A ∈ dom (F
∘ G)) → ((F ∘ G)
‘A) = (F ‘(G
‘A))) |
| 40 | 39 | exp 291 |
. . 3
⊢ ((Fun G ∧ A ∈
dom G) → (¬ A ∈ dom (F
∘ G) → ((F ∘ G)
‘A) = (F ‘(G
‘A)))) |
| 41 | 40 | adantll 309 |
. 2
⊢ (((Fun F ∧ Fun G)
∧ A ∈ dom G) → (¬ A ∈ dom (F
∘ G) → ((F ∘ G)
‘A) = (F ‘(G
‘A)))) |
| 42 | 32, 41 | pm2.61d 112 |
1
⊢ (((Fun F ∧ Fun G)
∧ A ∈ dom G) → ((F
∘ G) ‘A) = (F
‘(G ‘A))) |