Metamath Proof Explorer


Theorem funcnv5mpt

Description: Two ways to say that a function in maps-to notation is single-rooted. (Contributed by Thierry Arnoux, 1-Mar-2017)

Ref Expression
Hypotheses funcnv5mpt.0 𝑥 𝜑
funcnv5mpt.1 𝑥 𝐴
funcnv5mpt.2 𝑥 𝐹
funcnv5mpt.3 𝐹 = ( 𝑥𝐴𝐵 )
funcnv5mpt.4 ( ( 𝜑𝑥𝐴 ) → 𝐵𝑉 )
funcnv5mpt.5 ( 𝑥 = 𝑧𝐵 = 𝐶 )
Assertion funcnv5mpt ( 𝜑 → ( Fun 𝐹 ↔ ∀ 𝑥𝐴𝑧𝐴 ( 𝑥 = 𝑧𝐵𝐶 ) ) )

Proof

Step Hyp Ref Expression
1 funcnv5mpt.0 𝑥 𝜑
2 funcnv5mpt.1 𝑥 𝐴
3 funcnv5mpt.2 𝑥 𝐹
4 funcnv5mpt.3 𝐹 = ( 𝑥𝐴𝐵 )
5 funcnv5mpt.4 ( ( 𝜑𝑥𝐴 ) → 𝐵𝑉 )
6 funcnv5mpt.5 ( 𝑥 = 𝑧𝐵 = 𝐶 )
7 1 2 3 4 5 funcnvmpt ( 𝜑 → ( Fun 𝐹 ↔ ∀ 𝑦 ∃* 𝑥𝐴 𝑦 = 𝐵 ) )
8 nne ( ¬ 𝐵𝐶𝐵 = 𝐶 )
9 eqvincg ( 𝐵𝑉 → ( 𝐵 = 𝐶 ↔ ∃ 𝑦 ( 𝑦 = 𝐵𝑦 = 𝐶 ) ) )
10 5 9 syl ( ( 𝜑𝑥𝐴 ) → ( 𝐵 = 𝐶 ↔ ∃ 𝑦 ( 𝑦 = 𝐵𝑦 = 𝐶 ) ) )
11 8 10 bitrid ( ( 𝜑𝑥𝐴 ) → ( ¬ 𝐵𝐶 ↔ ∃ 𝑦 ( 𝑦 = 𝐵𝑦 = 𝐶 ) ) )
12 11 imbi1d ( ( 𝜑𝑥𝐴 ) → ( ( ¬ 𝐵𝐶𝑥 = 𝑧 ) ↔ ( ∃ 𝑦 ( 𝑦 = 𝐵𝑦 = 𝐶 ) → 𝑥 = 𝑧 ) ) )
13 orcom ( ( 𝑥 = 𝑧𝐵𝐶 ) ↔ ( 𝐵𝐶𝑥 = 𝑧 ) )
14 df-or ( ( 𝐵𝐶𝑥 = 𝑧 ) ↔ ( ¬ 𝐵𝐶𝑥 = 𝑧 ) )
15 13 14 bitri ( ( 𝑥 = 𝑧𝐵𝐶 ) ↔ ( ¬ 𝐵𝐶𝑥 = 𝑧 ) )
16 19.23v ( ∀ 𝑦 ( ( 𝑦 = 𝐵𝑦 = 𝐶 ) → 𝑥 = 𝑧 ) ↔ ( ∃ 𝑦 ( 𝑦 = 𝐵𝑦 = 𝐶 ) → 𝑥 = 𝑧 ) )
17 12 15 16 3bitr4g ( ( 𝜑𝑥𝐴 ) → ( ( 𝑥 = 𝑧𝐵𝐶 ) ↔ ∀ 𝑦 ( ( 𝑦 = 𝐵𝑦 = 𝐶 ) → 𝑥 = 𝑧 ) ) )
18 17 ralbidv ( ( 𝜑𝑥𝐴 ) → ( ∀ 𝑧𝐴 ( 𝑥 = 𝑧𝐵𝐶 ) ↔ ∀ 𝑧𝐴𝑦 ( ( 𝑦 = 𝐵𝑦 = 𝐶 ) → 𝑥 = 𝑧 ) ) )
19 ralcom4 ( ∀ 𝑧𝐴𝑦 ( ( 𝑦 = 𝐵𝑦 = 𝐶 ) → 𝑥 = 𝑧 ) ↔ ∀ 𝑦𝑧𝐴 ( ( 𝑦 = 𝐵𝑦 = 𝐶 ) → 𝑥 = 𝑧 ) )
20 18 19 bitrdi ( ( 𝜑𝑥𝐴 ) → ( ∀ 𝑧𝐴 ( 𝑥 = 𝑧𝐵𝐶 ) ↔ ∀ 𝑦𝑧𝐴 ( ( 𝑦 = 𝐵𝑦 = 𝐶 ) → 𝑥 = 𝑧 ) ) )
21 1 20 ralbida ( 𝜑 → ( ∀ 𝑥𝐴𝑧𝐴 ( 𝑥 = 𝑧𝐵𝐶 ) ↔ ∀ 𝑥𝐴𝑦𝑧𝐴 ( ( 𝑦 = 𝐵𝑦 = 𝐶 ) → 𝑥 = 𝑧 ) ) )
22 nfcv 𝑧 𝐴
23 nfv 𝑥 𝑦 = 𝐶
24 6 eqeq2d ( 𝑥 = 𝑧 → ( 𝑦 = 𝐵𝑦 = 𝐶 ) )
25 2 22 23 24 rmo4f ( ∃* 𝑥𝐴 𝑦 = 𝐵 ↔ ∀ 𝑥𝐴𝑧𝐴 ( ( 𝑦 = 𝐵𝑦 = 𝐶 ) → 𝑥 = 𝑧 ) )
26 25 albii ( ∀ 𝑦 ∃* 𝑥𝐴 𝑦 = 𝐵 ↔ ∀ 𝑦𝑥𝐴𝑧𝐴 ( ( 𝑦 = 𝐵𝑦 = 𝐶 ) → 𝑥 = 𝑧 ) )
27 ralcom4 ( ∀ 𝑥𝐴𝑦𝑧𝐴 ( ( 𝑦 = 𝐵𝑦 = 𝐶 ) → 𝑥 = 𝑧 ) ↔ ∀ 𝑦𝑥𝐴𝑧𝐴 ( ( 𝑦 = 𝐵𝑦 = 𝐶 ) → 𝑥 = 𝑧 ) )
28 26 27 bitr4i ( ∀ 𝑦 ∃* 𝑥𝐴 𝑦 = 𝐵 ↔ ∀ 𝑥𝐴𝑦𝑧𝐴 ( ( 𝑦 = 𝐵𝑦 = 𝐶 ) → 𝑥 = 𝑧 ) )
29 21 28 bitr4di ( 𝜑 → ( ∀ 𝑥𝐴𝑧𝐴 ( 𝑥 = 𝑧𝐵𝐶 ) ↔ ∀ 𝑦 ∃* 𝑥𝐴 𝑦 = 𝐵 ) )
30 7 29 bitr4d ( 𝜑 → ( Fun 𝐹 ↔ ∀ 𝑥𝐴𝑧𝐴 ( 𝑥 = 𝑧𝐵𝐶 ) ) )