Metamath Proof Explorer


Theorem natcoeq

Description: A natural transformation equals a composite exactly when all its components equal the corresponding composites, including when the object set is empty. (Contributed by Zhi Wang, 14-Sep-2026)

Ref Expression
Hypotheses natideq.q ⊢ Q = C FuncCat D
natideq.n ⊢ N = C Nat D
natideq.b ⊢ B = Base C
natcoeq.o No typesetting found for |- .o. = ( comp ` D ) with typecode |-
natcoeq.x ⊢ · ˙ = comp ⁡ Q
natcoeq.a ⊢ φ → A ∈ F N G
natcoeq.r ⊢ φ → R ∈ G N H
natcoeq.l ⊢ φ → L ∈ F N H
Assertion natcoeq Could not format assertion : No typesetting found for |- ( ph -> ( L = ( R ( <. F , G >. .x. H ) A ) <-> A. x e. B ( L ` x ) = ( ( R ` x ) ( <. ( ( 1st ` F ) ` x ) , ( ( 1st ` G ) ` x ) >. .o. ( ( 1st ` H ) ` x ) ) ( A ` x ) ) ) ) with typecode |-

Proof

Step Hyp Ref Expression
1 natideq.q ⊢ Q = C FuncCat D
2 natideq.n ⊢ N = C Nat D
3 natideq.b ⊢ B = Base C
4 natcoeq.o Could not format .o. = ( comp ` D ) : No typesetting found for |- .o. = ( comp ` D ) with typecode |-
5 natcoeq.x ⊢ · ˙ = comp ⁡ Q
6 natcoeq.a ⊢ φ → A ∈ F N G
7 natcoeq.r ⊢ φ → R ∈ G N H
8 natcoeq.l ⊢ φ → L ∈ F N H
9 1 2 5 6 7 fuccocl ⊢ φ → R F G · ˙ H A ∈ F N H
10 2 3 8 9 nateq ⊢ φ → L = R F G · ˙ H A ↔ ∀ x ∈ B L ⁡ x = R F G · ˙ H A ⁡ x
11 6 adantr ⊢ φ ∧ x ∈ B → A ∈ F N G
12 7 adantr ⊢ φ ∧ x ∈ B → R ∈ G N H
13 simpr ⊢ φ ∧ x ∈ B → x ∈ B
14 1 2 3 4 5 11 12 13 fuccoval Could not format ( ( ph /\ x e. B ) -> ( ( R ( <. F , G >. .x. H ) A ) ` x ) = ( ( R ` x ) ( <. ( ( 1st ` F ) ` x ) , ( ( 1st ` G ) ` x ) >. .o. ( ( 1st ` H ) ` x ) ) ( A ` x ) ) ) : No typesetting found for |- ( ( ph /\ x e. B ) -> ( ( R ( <. F , G >. .x. H ) A ) ` x ) = ( ( R ` x ) ( <. ( ( 1st ` F ) ` x ) , ( ( 1st ` G ) ` x ) >. .o. ( ( 1st ` H ) ` x ) ) ( A ` x ) ) ) with typecode |-
15 14 eqeq2d Could not format ( ( ph /\ x e. B ) -> ( ( L ` x ) = ( ( R ( <. F , G >. .x. H ) A ) ` x ) <-> ( L ` x ) = ( ( R ` x ) ( <. ( ( 1st ` F ) ` x ) , ( ( 1st ` G ) ` x ) >. .o. ( ( 1st ` H ) ` x ) ) ( A ` x ) ) ) ) : No typesetting found for |- ( ( ph /\ x e. B ) -> ( ( L ` x ) = ( ( R ( <. F , G >. .x. H ) A ) ` x ) <-> ( L ` x ) = ( ( R ` x ) ( <. ( ( 1st ` F ) ` x ) , ( ( 1st ` G ) ` x ) >. .o. ( ( 1st ` H ) ` x ) ) ( A ` x ) ) ) ) with typecode |-
16 15 ralbidva Could not format ( ph -> ( A. x e. B ( L ` x ) = ( ( R ( <. F , G >. .x. H ) A ) ` x ) <-> A. x e. B ( L ` x ) = ( ( R ` x ) ( <. ( ( 1st ` F ) ` x ) , ( ( 1st ` G ) ` x ) >. .o. ( ( 1st ` H ) ` x ) ) ( A ` x ) ) ) ) : No typesetting found for |- ( ph -> ( A. x e. B ( L ` x ) = ( ( R ( <. F , G >. .x. H ) A ) ` x ) <-> A. x e. B ( L ` x ) = ( ( R ` x ) ( <. ( ( 1st ` F ) ` x ) , ( ( 1st ` G ) ` x ) >. .o. ( ( 1st ` H ) ` x ) ) ( A ` x ) ) ) ) with typecode |-
17 10 16 bitrd Could not format ( ph -> ( L = ( R ( <. F , G >. .x. H ) A ) <-> A. x e. B ( L ` x ) = ( ( R ` x ) ( <. ( ( 1st ` F ) ` x ) , ( ( 1st ` G ) ` x ) >. .o. ( ( 1st ` H ) ` x ) ) ( A ` x ) ) ) ) : No typesetting found for |- ( ph -> ( L = ( R ( <. F , G >. .x. H ) A ) <-> A. x e. B ( L ` x ) = ( ( R ` x ) ( <. ( ( 1st ` F ) ` x ) , ( ( 1st ` G ) ` x ) >. .o. ( ( 1st ` H ) ` x ) ) ( A ` x ) ) ) ) with typecode |-