Metamath Proof Explorer


Theorem ichexmpl1

Description: Example for interchangeable setvar variables in a statement of predicate calculus with equality. (Contributed by AV, 31-Jul-2023)

Ref Expression
Assertion ichexmpl1 [ 𝑎𝑏 ] ∃ 𝑎𝑏𝑐 ( 𝑎 = 𝑏𝑎𝑐𝑏𝑐 )

Proof

Step Hyp Ref Expression
1 equequ1 ( 𝑎 = 𝑡 → ( 𝑎 = 𝑏𝑡 = 𝑏 ) )
2 neeq1 ( 𝑎 = 𝑡 → ( 𝑎𝑐𝑡𝑐 ) )
3 1 2 3anbi12d ( 𝑎 = 𝑡 → ( ( 𝑎 = 𝑏𝑎𝑐𝑏𝑐 ) ↔ ( 𝑡 = 𝑏𝑡𝑐𝑏𝑐 ) ) )
4 3 2exbidv ( 𝑎 = 𝑡 → ( ∃ 𝑏𝑐 ( 𝑎 = 𝑏𝑎𝑐𝑏𝑐 ) ↔ ∃ 𝑏𝑐 ( 𝑡 = 𝑏𝑡𝑐𝑏𝑐 ) ) )
5 4 cbvexvw ( ∃ 𝑎𝑏𝑐 ( 𝑎 = 𝑏𝑎𝑐𝑏𝑐 ) ↔ ∃ 𝑡𝑏𝑐 ( 𝑡 = 𝑏𝑡𝑐𝑏𝑐 ) )
6 5 a1i ( 𝑎 = 𝑡 → ( ∃ 𝑎𝑏𝑐 ( 𝑎 = 𝑏𝑎𝑐𝑏𝑐 ) ↔ ∃ 𝑡𝑏𝑐 ( 𝑡 = 𝑏𝑡𝑐𝑏𝑐 ) ) )
7 equequ2 ( 𝑏 = 𝑎 → ( 𝑡 = 𝑏𝑡 = 𝑎 ) )
8 neeq1 ( 𝑏 = 𝑎 → ( 𝑏𝑐𝑎𝑐 ) )
9 7 8 3anbi13d ( 𝑏 = 𝑎 → ( ( 𝑡 = 𝑏𝑡𝑐𝑏𝑐 ) ↔ ( 𝑡 = 𝑎𝑡𝑐𝑎𝑐 ) ) )
10 9 exbidv ( 𝑏 = 𝑎 → ( ∃ 𝑐 ( 𝑡 = 𝑏𝑡𝑐𝑏𝑐 ) ↔ ∃ 𝑐 ( 𝑡 = 𝑎𝑡𝑐𝑎𝑐 ) ) )
11 10 cbvexvw ( ∃ 𝑏𝑐 ( 𝑡 = 𝑏𝑡𝑐𝑏𝑐 ) ↔ ∃ 𝑎𝑐 ( 𝑡 = 𝑎𝑡𝑐𝑎𝑐 ) )
12 11 exbii ( ∃ 𝑡𝑏𝑐 ( 𝑡 = 𝑏𝑡𝑐𝑏𝑐 ) ↔ ∃ 𝑡𝑎𝑐 ( 𝑡 = 𝑎𝑡𝑐𝑎𝑐 ) )
13 12 a1i ( 𝑏 = 𝑎 → ( ∃ 𝑡𝑏𝑐 ( 𝑡 = 𝑏𝑡𝑐𝑏𝑐 ) ↔ ∃ 𝑡𝑎𝑐 ( 𝑡 = 𝑎𝑡𝑐𝑎𝑐 ) ) )
14 equequ1 ( 𝑡 = 𝑏 → ( 𝑡 = 𝑎𝑏 = 𝑎 ) )
15 neeq1 ( 𝑡 = 𝑏 → ( 𝑡𝑐𝑏𝑐 ) )
16 14 15 3anbi12d ( 𝑡 = 𝑏 → ( ( 𝑡 = 𝑎𝑡𝑐𝑎𝑐 ) ↔ ( 𝑏 = 𝑎𝑏𝑐𝑎𝑐 ) ) )
17 16 2exbidv ( 𝑡 = 𝑏 → ( ∃ 𝑎𝑐 ( 𝑡 = 𝑎𝑡𝑐𝑎𝑐 ) ↔ ∃ 𝑎𝑐 ( 𝑏 = 𝑎𝑏𝑐𝑎𝑐 ) ) )
18 17 cbvexvw ( ∃ 𝑡𝑎𝑐 ( 𝑡 = 𝑎𝑡𝑐𝑎𝑐 ) ↔ ∃ 𝑏𝑎𝑐 ( 𝑏 = 𝑎𝑏𝑐𝑎𝑐 ) )
19 excom ( ∃ 𝑏𝑎𝑐 ( 𝑏 = 𝑎𝑏𝑐𝑎𝑐 ) ↔ ∃ 𝑎𝑏𝑐 ( 𝑏 = 𝑎𝑏𝑐𝑎𝑐 ) )
20 3ancomb ( ( 𝑏 = 𝑎𝑏𝑐𝑎𝑐 ) ↔ ( 𝑏 = 𝑎𝑎𝑐𝑏𝑐 ) )
21 equcom ( 𝑏 = 𝑎𝑎 = 𝑏 )
22 21 3anbi1i ( ( 𝑏 = 𝑎𝑎𝑐𝑏𝑐 ) ↔ ( 𝑎 = 𝑏𝑎𝑐𝑏𝑐 ) )
23 20 22 bitri ( ( 𝑏 = 𝑎𝑏𝑐𝑎𝑐 ) ↔ ( 𝑎 = 𝑏𝑎𝑐𝑏𝑐 ) )
24 23 3exbii ( ∃ 𝑎𝑏𝑐 ( 𝑏 = 𝑎𝑏𝑐𝑎𝑐 ) ↔ ∃ 𝑎𝑏𝑐 ( 𝑎 = 𝑏𝑎𝑐𝑏𝑐 ) )
25 19 24 bitri ( ∃ 𝑏𝑎𝑐 ( 𝑏 = 𝑎𝑏𝑐𝑎𝑐 ) ↔ ∃ 𝑎𝑏𝑐 ( 𝑎 = 𝑏𝑎𝑐𝑏𝑐 ) )
26 18 25 bitri ( ∃ 𝑡𝑎𝑐 ( 𝑡 = 𝑎𝑡𝑐𝑎𝑐 ) ↔ ∃ 𝑎𝑏𝑐 ( 𝑎 = 𝑏𝑎𝑐𝑏𝑐 ) )
27 26 a1i ( 𝑡 = 𝑏 → ( ∃ 𝑡𝑎𝑐 ( 𝑡 = 𝑎𝑡𝑐𝑎𝑐 ) ↔ ∃ 𝑎𝑏𝑐 ( 𝑎 = 𝑏𝑎𝑐𝑏𝑐 ) ) )
28 6 13 27 ichcircshi [ 𝑎𝑏 ] ∃ 𝑎𝑏𝑐 ( 𝑎 = 𝑏𝑎𝑐𝑏𝑐 )