This is an inofficial mirror of http://metamath.tirix.org for personal testing of a visualizer extension only.
Description: A function whose domain has at most two elements can be represented as a set of at most two ordered pairs. (Contributed by FL, 26-Jun-2011) (Proof shortened by Scott Fenton, 12-Oct-2017) Eliminate unnecessary antecedent A =/= B . (Revised by NM, 29-Dec-2018)
| Ref | Expression | ||
|---|---|---|---|
| Hypotheses | fnprb.a | ⊢ 𝐴 ∈ V | |
| fnprb.b | ⊢ 𝐵 ∈ V | ||
| Assertion | fnprb | ⊢ ( 𝐹 Fn { 𝐴 , 𝐵 } ↔ 𝐹 = { 〈 𝐴 , ( 𝐹 ‘ 𝐴 ) 〉 , 〈 𝐵 , ( 𝐹 ‘ 𝐵 ) 〉 } ) |
| Step | Hyp | Ref | Expression |
|---|---|---|---|
| 1 | fnprb.a | ⊢ 𝐴 ∈ V | |
| 2 | fnprb.b | ⊢ 𝐵 ∈ V | |
| 3 | 1 | fnsnb | ⊢ ( 𝐹 Fn { 𝐴 } ↔ 𝐹 = { 〈 𝐴 , ( 𝐹 ‘ 𝐴 ) 〉 } ) |
| 4 | dfsn2 | ⊢ { 𝐴 } = { 𝐴 , 𝐴 } | |
| 5 | 4 | fneq2i | ⊢ ( 𝐹 Fn { 𝐴 } ↔ 𝐹 Fn { 𝐴 , 𝐴 } ) |
| 6 | dfsn2 | ⊢ { 〈 𝐴 , ( 𝐹 ‘ 𝐴 ) 〉 } = { 〈 𝐴 , ( 𝐹 ‘ 𝐴 ) 〉 , 〈 𝐴 , ( 𝐹 ‘ 𝐴 ) 〉 } | |
| 7 | 6 | eqeq2i | ⊢ ( 𝐹 = { 〈 𝐴 , ( 𝐹 ‘ 𝐴 ) 〉 } ↔ 𝐹 = { 〈 𝐴 , ( 𝐹 ‘ 𝐴 ) 〉 , 〈 𝐴 , ( 𝐹 ‘ 𝐴 ) 〉 } ) |
| 8 | 3 5 7 | 3bitr3i | ⊢ ( 𝐹 Fn { 𝐴 , 𝐴 } ↔ 𝐹 = { 〈 𝐴 , ( 𝐹 ‘ 𝐴 ) 〉 , 〈 𝐴 , ( 𝐹 ‘ 𝐴 ) 〉 } ) |
| 9 | 8 | a1i | ⊢ ( 𝐴 = 𝐵 → ( 𝐹 Fn { 𝐴 , 𝐴 } ↔ 𝐹 = { 〈 𝐴 , ( 𝐹 ‘ 𝐴 ) 〉 , 〈 𝐴 , ( 𝐹 ‘ 𝐴 ) 〉 } ) ) |
| 10 | preq2 | ⊢ ( 𝐴 = 𝐵 → { 𝐴 , 𝐴 } = { 𝐴 , 𝐵 } ) | |
| 11 | 10 | fneq2d | ⊢ ( 𝐴 = 𝐵 → ( 𝐹 Fn { 𝐴 , 𝐴 } ↔ 𝐹 Fn { 𝐴 , 𝐵 } ) ) |
| 12 | id | ⊢ ( 𝐴 = 𝐵 → 𝐴 = 𝐵 ) | |
| 13 | fveq2 | ⊢ ( 𝐴 = 𝐵 → ( 𝐹 ‘ 𝐴 ) = ( 𝐹 ‘ 𝐵 ) ) | |
| 14 | 12 13 | opeq12d | ⊢ ( 𝐴 = 𝐵 → 〈 𝐴 , ( 𝐹 ‘ 𝐴 ) 〉 = 〈 𝐵 , ( 𝐹 ‘ 𝐵 ) 〉 ) |
| 15 | 14 | preq2d | ⊢ ( 𝐴 = 𝐵 → { 〈 𝐴 , ( 𝐹 ‘ 𝐴 ) 〉 , 〈 𝐴 , ( 𝐹 ‘ 𝐴 ) 〉 } = { 〈 𝐴 , ( 𝐹 ‘ 𝐴 ) 〉 , 〈 𝐵 , ( 𝐹 ‘ 𝐵 ) 〉 } ) |
| 16 | 15 | eqeq2d | ⊢ ( 𝐴 = 𝐵 → ( 𝐹 = { 〈 𝐴 , ( 𝐹 ‘ 𝐴 ) 〉 , 〈 𝐴 , ( 𝐹 ‘ 𝐴 ) 〉 } ↔ 𝐹 = { 〈 𝐴 , ( 𝐹 ‘ 𝐴 ) 〉 , 〈 𝐵 , ( 𝐹 ‘ 𝐵 ) 〉 } ) ) |
| 17 | 9 11 16 | 3bitr3d | ⊢ ( 𝐴 = 𝐵 → ( 𝐹 Fn { 𝐴 , 𝐵 } ↔ 𝐹 = { 〈 𝐴 , ( 𝐹 ‘ 𝐴 ) 〉 , 〈 𝐵 , ( 𝐹 ‘ 𝐵 ) 〉 } ) ) |
| 18 | fndm | ⊢ ( 𝐹 Fn { 𝐴 , 𝐵 } → dom 𝐹 = { 𝐴 , 𝐵 } ) | |
| 19 | fvex | ⊢ ( 𝐹 ‘ 𝐴 ) ∈ V | |
| 20 | fvex | ⊢ ( 𝐹 ‘ 𝐵 ) ∈ V | |
| 21 | 19 20 | dmprop | ⊢ dom { 〈 𝐴 , ( 𝐹 ‘ 𝐴 ) 〉 , 〈 𝐵 , ( 𝐹 ‘ 𝐵 ) 〉 } = { 𝐴 , 𝐵 } |
| 22 | 18 21 | eqtr4di | ⊢ ( 𝐹 Fn { 𝐴 , 𝐵 } → dom 𝐹 = dom { 〈 𝐴 , ( 𝐹 ‘ 𝐴 ) 〉 , 〈 𝐵 , ( 𝐹 ‘ 𝐵 ) 〉 } ) |
| 23 | 22 | adantl | ⊢ ( ( 𝐴 ≠ 𝐵 ∧ 𝐹 Fn { 𝐴 , 𝐵 } ) → dom 𝐹 = dom { 〈 𝐴 , ( 𝐹 ‘ 𝐴 ) 〉 , 〈 𝐵 , ( 𝐹 ‘ 𝐵 ) 〉 } ) |
| 24 | 18 | adantl | ⊢ ( ( 𝐴 ≠ 𝐵 ∧ 𝐹 Fn { 𝐴 , 𝐵 } ) → dom 𝐹 = { 𝐴 , 𝐵 } ) |
| 25 | 24 | eleq2d | ⊢ ( ( 𝐴 ≠ 𝐵 ∧ 𝐹 Fn { 𝐴 , 𝐵 } ) → ( 𝑥 ∈ dom 𝐹 ↔ 𝑥 ∈ { 𝐴 , 𝐵 } ) ) |
| 26 | vex | ⊢ 𝑥 ∈ V | |
| 27 | 26 | elpr | ⊢ ( 𝑥 ∈ { 𝐴 , 𝐵 } ↔ ( 𝑥 = 𝐴 ∨ 𝑥 = 𝐵 ) ) |
| 28 | 1 19 | fvpr1 | ⊢ ( 𝐴 ≠ 𝐵 → ( { 〈 𝐴 , ( 𝐹 ‘ 𝐴 ) 〉 , 〈 𝐵 , ( 𝐹 ‘ 𝐵 ) 〉 } ‘ 𝐴 ) = ( 𝐹 ‘ 𝐴 ) ) |
| 29 | 28 | adantr | ⊢ ( ( 𝐴 ≠ 𝐵 ∧ 𝐹 Fn { 𝐴 , 𝐵 } ) → ( { 〈 𝐴 , ( 𝐹 ‘ 𝐴 ) 〉 , 〈 𝐵 , ( 𝐹 ‘ 𝐵 ) 〉 } ‘ 𝐴 ) = ( 𝐹 ‘ 𝐴 ) ) |
| 30 | 29 | eqcomd | ⊢ ( ( 𝐴 ≠ 𝐵 ∧ 𝐹 Fn { 𝐴 , 𝐵 } ) → ( 𝐹 ‘ 𝐴 ) = ( { 〈 𝐴 , ( 𝐹 ‘ 𝐴 ) 〉 , 〈 𝐵 , ( 𝐹 ‘ 𝐵 ) 〉 } ‘ 𝐴 ) ) |
| 31 | fveq2 | ⊢ ( 𝑥 = 𝐴 → ( 𝐹 ‘ 𝑥 ) = ( 𝐹 ‘ 𝐴 ) ) | |
| 32 | fveq2 | ⊢ ( 𝑥 = 𝐴 → ( { 〈 𝐴 , ( 𝐹 ‘ 𝐴 ) 〉 , 〈 𝐵 , ( 𝐹 ‘ 𝐵 ) 〉 } ‘ 𝑥 ) = ( { 〈 𝐴 , ( 𝐹 ‘ 𝐴 ) 〉 , 〈 𝐵 , ( 𝐹 ‘ 𝐵 ) 〉 } ‘ 𝐴 ) ) | |
| 33 | 31 32 | eqeq12d | ⊢ ( 𝑥 = 𝐴 → ( ( 𝐹 ‘ 𝑥 ) = ( { 〈 𝐴 , ( 𝐹 ‘ 𝐴 ) 〉 , 〈 𝐵 , ( 𝐹 ‘ 𝐵 ) 〉 } ‘ 𝑥 ) ↔ ( 𝐹 ‘ 𝐴 ) = ( { 〈 𝐴 , ( 𝐹 ‘ 𝐴 ) 〉 , 〈 𝐵 , ( 𝐹 ‘ 𝐵 ) 〉 } ‘ 𝐴 ) ) ) |
| 34 | 30 33 | syl5ibrcom | ⊢ ( ( 𝐴 ≠ 𝐵 ∧ 𝐹 Fn { 𝐴 , 𝐵 } ) → ( 𝑥 = 𝐴 → ( 𝐹 ‘ 𝑥 ) = ( { 〈 𝐴 , ( 𝐹 ‘ 𝐴 ) 〉 , 〈 𝐵 , ( 𝐹 ‘ 𝐵 ) 〉 } ‘ 𝑥 ) ) ) |
| 35 | 2 20 | fvpr2 | ⊢ ( 𝐴 ≠ 𝐵 → ( { 〈 𝐴 , ( 𝐹 ‘ 𝐴 ) 〉 , 〈 𝐵 , ( 𝐹 ‘ 𝐵 ) 〉 } ‘ 𝐵 ) = ( 𝐹 ‘ 𝐵 ) ) |
| 36 | 35 | adantr | ⊢ ( ( 𝐴 ≠ 𝐵 ∧ 𝐹 Fn { 𝐴 , 𝐵 } ) → ( { 〈 𝐴 , ( 𝐹 ‘ 𝐴 ) 〉 , 〈 𝐵 , ( 𝐹 ‘ 𝐵 ) 〉 } ‘ 𝐵 ) = ( 𝐹 ‘ 𝐵 ) ) |
| 37 | 36 | eqcomd | ⊢ ( ( 𝐴 ≠ 𝐵 ∧ 𝐹 Fn { 𝐴 , 𝐵 } ) → ( 𝐹 ‘ 𝐵 ) = ( { 〈 𝐴 , ( 𝐹 ‘ 𝐴 ) 〉 , 〈 𝐵 , ( 𝐹 ‘ 𝐵 ) 〉 } ‘ 𝐵 ) ) |
| 38 | fveq2 | ⊢ ( 𝑥 = 𝐵 → ( 𝐹 ‘ 𝑥 ) = ( 𝐹 ‘ 𝐵 ) ) | |
| 39 | fveq2 | ⊢ ( 𝑥 = 𝐵 → ( { 〈 𝐴 , ( 𝐹 ‘ 𝐴 ) 〉 , 〈 𝐵 , ( 𝐹 ‘ 𝐵 ) 〉 } ‘ 𝑥 ) = ( { 〈 𝐴 , ( 𝐹 ‘ 𝐴 ) 〉 , 〈 𝐵 , ( 𝐹 ‘ 𝐵 ) 〉 } ‘ 𝐵 ) ) | |
| 40 | 38 39 | eqeq12d | ⊢ ( 𝑥 = 𝐵 → ( ( 𝐹 ‘ 𝑥 ) = ( { 〈 𝐴 , ( 𝐹 ‘ 𝐴 ) 〉 , 〈 𝐵 , ( 𝐹 ‘ 𝐵 ) 〉 } ‘ 𝑥 ) ↔ ( 𝐹 ‘ 𝐵 ) = ( { 〈 𝐴 , ( 𝐹 ‘ 𝐴 ) 〉 , 〈 𝐵 , ( 𝐹 ‘ 𝐵 ) 〉 } ‘ 𝐵 ) ) ) |
| 41 | 37 40 | syl5ibrcom | ⊢ ( ( 𝐴 ≠ 𝐵 ∧ 𝐹 Fn { 𝐴 , 𝐵 } ) → ( 𝑥 = 𝐵 → ( 𝐹 ‘ 𝑥 ) = ( { 〈 𝐴 , ( 𝐹 ‘ 𝐴 ) 〉 , 〈 𝐵 , ( 𝐹 ‘ 𝐵 ) 〉 } ‘ 𝑥 ) ) ) |
| 42 | 34 41 | jaod | ⊢ ( ( 𝐴 ≠ 𝐵 ∧ 𝐹 Fn { 𝐴 , 𝐵 } ) → ( ( 𝑥 = 𝐴 ∨ 𝑥 = 𝐵 ) → ( 𝐹 ‘ 𝑥 ) = ( { 〈 𝐴 , ( 𝐹 ‘ 𝐴 ) 〉 , 〈 𝐵 , ( 𝐹 ‘ 𝐵 ) 〉 } ‘ 𝑥 ) ) ) |
| 43 | 27 42 | biimtrid | ⊢ ( ( 𝐴 ≠ 𝐵 ∧ 𝐹 Fn { 𝐴 , 𝐵 } ) → ( 𝑥 ∈ { 𝐴 , 𝐵 } → ( 𝐹 ‘ 𝑥 ) = ( { 〈 𝐴 , ( 𝐹 ‘ 𝐴 ) 〉 , 〈 𝐵 , ( 𝐹 ‘ 𝐵 ) 〉 } ‘ 𝑥 ) ) ) |
| 44 | 25 43 | sylbid | ⊢ ( ( 𝐴 ≠ 𝐵 ∧ 𝐹 Fn { 𝐴 , 𝐵 } ) → ( 𝑥 ∈ dom 𝐹 → ( 𝐹 ‘ 𝑥 ) = ( { 〈 𝐴 , ( 𝐹 ‘ 𝐴 ) 〉 , 〈 𝐵 , ( 𝐹 ‘ 𝐵 ) 〉 } ‘ 𝑥 ) ) ) |
| 45 | 44 | ralrimiv | ⊢ ( ( 𝐴 ≠ 𝐵 ∧ 𝐹 Fn { 𝐴 , 𝐵 } ) → ∀ 𝑥 ∈ dom 𝐹 ( 𝐹 ‘ 𝑥 ) = ( { 〈 𝐴 , ( 𝐹 ‘ 𝐴 ) 〉 , 〈 𝐵 , ( 𝐹 ‘ 𝐵 ) 〉 } ‘ 𝑥 ) ) |
| 46 | fnfun | ⊢ ( 𝐹 Fn { 𝐴 , 𝐵 } → Fun 𝐹 ) | |
| 47 | 1 2 19 20 | funpr | ⊢ ( 𝐴 ≠ 𝐵 → Fun { 〈 𝐴 , ( 𝐹 ‘ 𝐴 ) 〉 , 〈 𝐵 , ( 𝐹 ‘ 𝐵 ) 〉 } ) |
| 48 | eqfunfv | ⊢ ( ( Fun 𝐹 ∧ Fun { 〈 𝐴 , ( 𝐹 ‘ 𝐴 ) 〉 , 〈 𝐵 , ( 𝐹 ‘ 𝐵 ) 〉 } ) → ( 𝐹 = { 〈 𝐴 , ( 𝐹 ‘ 𝐴 ) 〉 , 〈 𝐵 , ( 𝐹 ‘ 𝐵 ) 〉 } ↔ ( dom 𝐹 = dom { 〈 𝐴 , ( 𝐹 ‘ 𝐴 ) 〉 , 〈 𝐵 , ( 𝐹 ‘ 𝐵 ) 〉 } ∧ ∀ 𝑥 ∈ dom 𝐹 ( 𝐹 ‘ 𝑥 ) = ( { 〈 𝐴 , ( 𝐹 ‘ 𝐴 ) 〉 , 〈 𝐵 , ( 𝐹 ‘ 𝐵 ) 〉 } ‘ 𝑥 ) ) ) ) | |
| 49 | 46 47 48 | syl2anr | ⊢ ( ( 𝐴 ≠ 𝐵 ∧ 𝐹 Fn { 𝐴 , 𝐵 } ) → ( 𝐹 = { 〈 𝐴 , ( 𝐹 ‘ 𝐴 ) 〉 , 〈 𝐵 , ( 𝐹 ‘ 𝐵 ) 〉 } ↔ ( dom 𝐹 = dom { 〈 𝐴 , ( 𝐹 ‘ 𝐴 ) 〉 , 〈 𝐵 , ( 𝐹 ‘ 𝐵 ) 〉 } ∧ ∀ 𝑥 ∈ dom 𝐹 ( 𝐹 ‘ 𝑥 ) = ( { 〈 𝐴 , ( 𝐹 ‘ 𝐴 ) 〉 , 〈 𝐵 , ( 𝐹 ‘ 𝐵 ) 〉 } ‘ 𝑥 ) ) ) ) |
| 50 | 23 45 49 | mpbir2and | ⊢ ( ( 𝐴 ≠ 𝐵 ∧ 𝐹 Fn { 𝐴 , 𝐵 } ) → 𝐹 = { 〈 𝐴 , ( 𝐹 ‘ 𝐴 ) 〉 , 〈 𝐵 , ( 𝐹 ‘ 𝐵 ) 〉 } ) |
| 51 | df-fn | ⊢ ( { 〈 𝐴 , ( 𝐹 ‘ 𝐴 ) 〉 , 〈 𝐵 , ( 𝐹 ‘ 𝐵 ) 〉 } Fn { 𝐴 , 𝐵 } ↔ ( Fun { 〈 𝐴 , ( 𝐹 ‘ 𝐴 ) 〉 , 〈 𝐵 , ( 𝐹 ‘ 𝐵 ) 〉 } ∧ dom { 〈 𝐴 , ( 𝐹 ‘ 𝐴 ) 〉 , 〈 𝐵 , ( 𝐹 ‘ 𝐵 ) 〉 } = { 𝐴 , 𝐵 } ) ) | |
| 52 | 47 21 51 | sylanblrc | ⊢ ( 𝐴 ≠ 𝐵 → { 〈 𝐴 , ( 𝐹 ‘ 𝐴 ) 〉 , 〈 𝐵 , ( 𝐹 ‘ 𝐵 ) 〉 } Fn { 𝐴 , 𝐵 } ) |
| 53 | fneq1 | ⊢ ( 𝐹 = { 〈 𝐴 , ( 𝐹 ‘ 𝐴 ) 〉 , 〈 𝐵 , ( 𝐹 ‘ 𝐵 ) 〉 } → ( 𝐹 Fn { 𝐴 , 𝐵 } ↔ { 〈 𝐴 , ( 𝐹 ‘ 𝐴 ) 〉 , 〈 𝐵 , ( 𝐹 ‘ 𝐵 ) 〉 } Fn { 𝐴 , 𝐵 } ) ) | |
| 54 | 53 | biimprd | ⊢ ( 𝐹 = { 〈 𝐴 , ( 𝐹 ‘ 𝐴 ) 〉 , 〈 𝐵 , ( 𝐹 ‘ 𝐵 ) 〉 } → ( { 〈 𝐴 , ( 𝐹 ‘ 𝐴 ) 〉 , 〈 𝐵 , ( 𝐹 ‘ 𝐵 ) 〉 } Fn { 𝐴 , 𝐵 } → 𝐹 Fn { 𝐴 , 𝐵 } ) ) |
| 55 | 52 54 | mpan9 | ⊢ ( ( 𝐴 ≠ 𝐵 ∧ 𝐹 = { 〈 𝐴 , ( 𝐹 ‘ 𝐴 ) 〉 , 〈 𝐵 , ( 𝐹 ‘ 𝐵 ) 〉 } ) → 𝐹 Fn { 𝐴 , 𝐵 } ) |
| 56 | 50 55 | impbida | ⊢ ( 𝐴 ≠ 𝐵 → ( 𝐹 Fn { 𝐴 , 𝐵 } ↔ 𝐹 = { 〈 𝐴 , ( 𝐹 ‘ 𝐴 ) 〉 , 〈 𝐵 , ( 𝐹 ‘ 𝐵 ) 〉 } ) ) |
| 57 | 17 56 | pm2.61ine | ⊢ ( 𝐹 Fn { 𝐴 , 𝐵 } ↔ 𝐹 = { 〈 𝐴 , ( 𝐹 ‘ 𝐴 ) 〉 , 〈 𝐵 , ( 𝐹 ‘ 𝐵 ) 〉 } ) |