Users' Mathboxes Mathbox for Alexander van der Vekens < Previous   Next >
Nearby theorems
Mirrors  >  Home  >  MPE Home  >  Th. List  >   Mathboxes  >  eucrctshift Structured version   Visualization version   GIF version

Theorem eucrctshift 41411
Description: Cyclically shifting the indices of an Eulerian circuit 𝐹, 𝑃 results in an Eulerian circuit 𝐻, 𝑄. (Contributed by AV, 15-Mar-2021.)
Hypotheses
Ref Expression
eucrctshift.v 𝑉 = (Vtx‘𝐺)
eucrctshift.i 𝐼 = (iEdg‘𝐺)
eucrctshift.c (𝜑𝐹(CircuitS‘𝐺)𝑃)
eucrctshift.n 𝑁 = (#‘𝐹)
eucrctshift.s (𝜑𝑆 ∈ (0..^𝑁))
eucrctshift.h 𝐻 = (𝐹 cyclShift 𝑆)
eucrctshift.q 𝑄 = (𝑥 ∈ (0...𝑁) ↦ if(𝑥 ≤ (𝑁𝑆), (𝑃‘(𝑥 + 𝑆)), (𝑃‘((𝑥 + 𝑆) − 𝑁))))
eucrctshift.e (𝜑𝐹(EulerPaths‘𝐺)𝑃)
Assertion
Ref Expression
eucrctshift (𝜑 → (𝐻(EulerPaths‘𝐺)𝑄𝐻(CircuitS‘𝐺)𝑄))
Distinct variable groups:   𝑥,𝐹   𝑥,𝐻   𝑥,𝐼   𝑥,𝑁   𝑥,𝑃   𝑥,𝑆   𝑥,𝑉   𝜑,𝑥
Allowed substitution hints:   𝑄(𝑥)   𝐺(𝑥)

Proof of Theorem eucrctshift
Dummy variables 𝑖 𝑦 𝑧 are mutually distinct and distinct from all other variables.
StepHypRef Expression
1 eucrctshift.v . . . . 5 𝑉 = (Vtx‘𝐺)
2 eucrctshift.i . . . . 5 𝐼 = (iEdg‘𝐺)
3 eucrctshift.c . . . . 5 (𝜑𝐹(CircuitS‘𝐺)𝑃)
4 eucrctshift.n . . . . 5 𝑁 = (#‘𝐹)
5 eucrctshift.s . . . . 5 (𝜑𝑆 ∈ (0..^𝑁))
6 eucrctshift.h . . . . 5 𝐻 = (𝐹 cyclShift 𝑆)
7 eucrctshift.q . . . . 5 𝑄 = (𝑥 ∈ (0...𝑁) ↦ if(𝑥 ≤ (𝑁𝑆), (𝑃‘(𝑥 + 𝑆)), (𝑃‘((𝑥 + 𝑆) − 𝑁))))
81, 2, 3, 4, 5, 6, 7crctcshtrl 41026 . . . 4 (𝜑𝐻(TrailS‘𝐺)𝑄)
9 simpr 476 . . . . 5 ((𝜑𝐻(TrailS‘𝐺)𝑄) → 𝐻(TrailS‘𝐺)𝑄)
10 eucrctshift.e . . . . . . . 8 (𝜑𝐹(EulerPaths‘𝐺)𝑃)
112eupthf1o 41372 . . . . . . . 8 (𝐹(EulerPaths‘𝐺)𝑃𝐹:(0..^(#‘𝐹))–1-1-onto→dom 𝐼)
1210, 11syl 17 . . . . . . 7 (𝜑𝐹:(0..^(#‘𝐹))–1-1-onto→dom 𝐼)
1312adantr 480 . . . . . 6 ((𝜑𝐻(TrailS‘𝐺)𝑄) → 𝐹:(0..^(#‘𝐹))–1-1-onto→dom 𝐼)
14 trlis1wlk 40905 . . . . . . . . 9 (𝐻(TrailS‘𝐺)𝑄𝐻(1Walks‘𝐺)𝑄)
1521wlkf 40819 . . . . . . . . 9 (𝐻(1Walks‘𝐺)𝑄𝐻 ∈ Word dom 𝐼)
16 wrdf 13165 . . . . . . . . 9 (𝐻 ∈ Word dom 𝐼𝐻:(0..^(#‘𝐻))⟶dom 𝐼)
1714, 15, 163syl 18 . . . . . . . 8 (𝐻(TrailS‘𝐺)𝑄𝐻:(0..^(#‘𝐻))⟶dom 𝐼)
18 df-f1o 5811 . . . . . . . . . 10 (𝐹:(0..^(#‘𝐹))–1-1-onto→dom 𝐼 ↔ (𝐹:(0..^(#‘𝐹))–1-1→dom 𝐼𝐹:(0..^(#‘𝐹))–onto→dom 𝐼))
19 dffo3 6282 . . . . . . . . . . 11 (𝐹:(0..^(#‘𝐹))–onto→dom 𝐼 ↔ (𝐹:(0..^(#‘𝐹))⟶dom 𝐼 ∧ ∀𝑖 ∈ dom 𝐼𝑦 ∈ (0..^(#‘𝐹))𝑖 = (𝐹𝑦)))
20 crctis1wlk 41002 . . . . . . . . . . . . . . . . . . . . . . . . . . 27 (𝐹(CircuitS‘𝐺)𝑃𝐹(1Walks‘𝐺)𝑃)
2121wlkf 40819 . . . . . . . . . . . . . . . . . . . . . . . . . . 27 (𝐹(1Walks‘𝐺)𝑃𝐹 ∈ Word dom 𝐼)
22 lencl 13179 . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 (𝐹 ∈ Word dom 𝐼 → (#‘𝐹) ∈ ℕ0)
234oveq2i 6560 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30 (0..^𝑁) = (0..^(#‘𝐹))
2423eleq2i 2680 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29 (𝑆 ∈ (0..^𝑁) ↔ 𝑆 ∈ (0..^(#‘𝐹)))
25 elfzonn0 12380 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37 (𝑆 ∈ (0..^(#‘𝐹)) → 𝑆 ∈ ℕ0)
2625adantl 481 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36 (((#‘𝐹) ∈ ℕ0𝑆 ∈ (0..^(#‘𝐹))) → 𝑆 ∈ ℕ0)
27 elfzonn0 12380 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36 (𝑦 ∈ (0..^(#‘𝐹)) → 𝑦 ∈ ℕ0)
28 nn0sub 11220 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36 ((𝑆 ∈ ℕ0𝑦 ∈ ℕ0) → (𝑆𝑦 ↔ (𝑦𝑆) ∈ ℕ0))
2926, 27, 28syl2an 493 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35 ((((#‘𝐹) ∈ ℕ0𝑆 ∈ (0..^(#‘𝐹))) ∧ 𝑦 ∈ (0..^(#‘𝐹))) → (𝑆𝑦 ↔ (𝑦𝑆) ∈ ℕ0))
3029biimpac 502 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34 ((𝑆𝑦 ∧ (((#‘𝐹) ∈ ℕ0𝑆 ∈ (0..^(#‘𝐹))) ∧ 𝑦 ∈ (0..^(#‘𝐹)))) → (𝑦𝑆) ∈ ℕ0)
31 elfzo0 12376 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36 (𝑦 ∈ (0..^(#‘𝐹)) ↔ (𝑦 ∈ ℕ0 ∧ (#‘𝐹) ∈ ℕ ∧ 𝑦 < (#‘𝐹)))
32 simp2 1055 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36 ((𝑦 ∈ ℕ0 ∧ (#‘𝐹) ∈ ℕ ∧ 𝑦 < (#‘𝐹)) → (#‘𝐹) ∈ ℕ)
3331, 32sylbi 206 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35 (𝑦 ∈ (0..^(#‘𝐹)) → (#‘𝐹) ∈ ℕ)
3433ad2antll 761 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34 ((𝑆𝑦 ∧ (((#‘𝐹) ∈ ℕ0𝑆 ∈ (0..^(#‘𝐹))) ∧ 𝑦 ∈ (0..^(#‘𝐹)))) → (#‘𝐹) ∈ ℕ)
35 nn0re 11178 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47 (𝑦 ∈ ℕ0𝑦 ∈ ℝ)
3635ad2antrr 758 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46 (((𝑦 ∈ ℕ0 ∧ (#‘𝐹) ∈ ℕ) ∧ 𝑆 ∈ (0..^(#‘𝐹))) → 𝑦 ∈ ℝ)
37 nnre 10904 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48 ((#‘𝐹) ∈ ℕ → (#‘𝐹) ∈ ℝ)
3837adantl 481 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47 ((𝑦 ∈ ℕ0 ∧ (#‘𝐹) ∈ ℕ) → (#‘𝐹) ∈ ℝ)
3938adantr 480 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46 (((𝑦 ∈ ℕ0 ∧ (#‘𝐹) ∈ ℕ) ∧ 𝑆 ∈ (0..^(#‘𝐹))) → (#‘𝐹) ∈ ℝ)
40 elfzoelz 12339 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48 (𝑆 ∈ (0..^(#‘𝐹)) → 𝑆 ∈ ℤ)
4140zred 11358 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47 (𝑆 ∈ (0..^(#‘𝐹)) → 𝑆 ∈ ℝ)
42 readdcl 9898 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47 (((#‘𝐹) ∈ ℝ ∧ 𝑆 ∈ ℝ) → ((#‘𝐹) + 𝑆) ∈ ℝ)
4338, 41, 42syl2an 493 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46 (((𝑦 ∈ ℕ0 ∧ (#‘𝐹) ∈ ℕ) ∧ 𝑆 ∈ (0..^(#‘𝐹))) → ((#‘𝐹) + 𝑆) ∈ ℝ)
4436, 39, 433jca 1235 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45 (((𝑦 ∈ ℕ0 ∧ (#‘𝐹) ∈ ℕ) ∧ 𝑆 ∈ (0..^(#‘𝐹))) → (𝑦 ∈ ℝ ∧ (#‘𝐹) ∈ ℝ ∧ ((#‘𝐹) + 𝑆) ∈ ℝ))
45 elfzole1 12347 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47 (𝑆 ∈ (0..^(#‘𝐹)) → 0 ≤ 𝑆)
4645adantl 481 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46 (((𝑦 ∈ ℕ0 ∧ (#‘𝐹) ∈ ℕ) ∧ 𝑆 ∈ (0..^(#‘𝐹))) → 0 ≤ 𝑆)
47 addge01 10417 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47 (((#‘𝐹) ∈ ℝ ∧ 𝑆 ∈ ℝ) → (0 ≤ 𝑆 ↔ (#‘𝐹) ≤ ((#‘𝐹) + 𝑆)))
4838, 41, 47syl2an 493 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46 (((𝑦 ∈ ℕ0 ∧ (#‘𝐹) ∈ ℕ) ∧ 𝑆 ∈ (0..^(#‘𝐹))) → (0 ≤ 𝑆 ↔ (#‘𝐹) ≤ ((#‘𝐹) + 𝑆)))
4946, 48mpbid 221 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45 (((𝑦 ∈ ℕ0 ∧ (#‘𝐹) ∈ ℕ) ∧ 𝑆 ∈ (0..^(#‘𝐹))) → (#‘𝐹) ≤ ((#‘𝐹) + 𝑆))
5044, 49lelttrdi 10078 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44 (((𝑦 ∈ ℕ0 ∧ (#‘𝐹) ∈ ℕ) ∧ 𝑆 ∈ (0..^(#‘𝐹))) → (𝑦 < (#‘𝐹) → 𝑦 < ((#‘𝐹) + 𝑆)))
5150ex 449 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43 ((𝑦 ∈ ℕ0 ∧ (#‘𝐹) ∈ ℕ) → (𝑆 ∈ (0..^(#‘𝐹)) → (𝑦 < (#‘𝐹) → 𝑦 < ((#‘𝐹) + 𝑆))))
5251com23 84 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42 ((𝑦 ∈ ℕ0 ∧ (#‘𝐹) ∈ ℕ) → (𝑦 < (#‘𝐹) → (𝑆 ∈ (0..^(#‘𝐹)) → 𝑦 < ((#‘𝐹) + 𝑆))))
53523impia 1253 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41 ((𝑦 ∈ ℕ0 ∧ (#‘𝐹) ∈ ℕ ∧ 𝑦 < (#‘𝐹)) → (𝑆 ∈ (0..^(#‘𝐹)) → 𝑦 < ((#‘𝐹) + 𝑆)))
5453adantld 482 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40 ((𝑦 ∈ ℕ0 ∧ (#‘𝐹) ∈ ℕ ∧ 𝑦 < (#‘𝐹)) → (((#‘𝐹) ∈ ℕ0𝑆 ∈ (0..^(#‘𝐹))) → 𝑦 < ((#‘𝐹) + 𝑆)))
5554imp 444 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39 (((𝑦 ∈ ℕ0 ∧ (#‘𝐹) ∈ ℕ ∧ 𝑦 < (#‘𝐹)) ∧ ((#‘𝐹) ∈ ℕ0𝑆 ∈ (0..^(#‘𝐹)))) → 𝑦 < ((#‘𝐹) + 𝑆))
56353ad2ant1 1075 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41 ((𝑦 ∈ ℕ0 ∧ (#‘𝐹) ∈ ℕ ∧ 𝑦 < (#‘𝐹)) → 𝑦 ∈ ℝ)
5756adantr 480 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40 (((𝑦 ∈ ℕ0 ∧ (#‘𝐹) ∈ ℕ ∧ 𝑦 < (#‘𝐹)) ∧ ((#‘𝐹) ∈ ℕ0𝑆 ∈ (0..^(#‘𝐹)))) → 𝑦 ∈ ℝ)
5841ad2antll 761 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40 (((𝑦 ∈ ℕ0 ∧ (#‘𝐹) ∈ ℕ ∧ 𝑦 < (#‘𝐹)) ∧ ((#‘𝐹) ∈ ℕ0𝑆 ∈ (0..^(#‘𝐹)))) → 𝑆 ∈ ℝ)
59 elfzoel2 12338 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42 (𝑆 ∈ (0..^(#‘𝐹)) → (#‘𝐹) ∈ ℤ)
6059zred 11358 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41 (𝑆 ∈ (0..^(#‘𝐹)) → (#‘𝐹) ∈ ℝ)
6160ad2antll 761 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40 (((𝑦 ∈ ℕ0 ∧ (#‘𝐹) ∈ ℕ ∧ 𝑦 < (#‘𝐹)) ∧ ((#‘𝐹) ∈ ℕ0𝑆 ∈ (0..^(#‘𝐹)))) → (#‘𝐹) ∈ ℝ)
6257, 58, 61ltsubaddd 10502 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39 (((𝑦 ∈ ℕ0 ∧ (#‘𝐹) ∈ ℕ ∧ 𝑦 < (#‘𝐹)) ∧ ((#‘𝐹) ∈ ℕ0𝑆 ∈ (0..^(#‘𝐹)))) → ((𝑦𝑆) < (#‘𝐹) ↔ 𝑦 < ((#‘𝐹) + 𝑆)))
6355, 62mpbird 246 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38 (((𝑦 ∈ ℕ0 ∧ (#‘𝐹) ∈ ℕ ∧ 𝑦 < (#‘𝐹)) ∧ ((#‘𝐹) ∈ ℕ0𝑆 ∈ (0..^(#‘𝐹)))) → (𝑦𝑆) < (#‘𝐹))
6463ex 449 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37 ((𝑦 ∈ ℕ0 ∧ (#‘𝐹) ∈ ℕ ∧ 𝑦 < (#‘𝐹)) → (((#‘𝐹) ∈ ℕ0𝑆 ∈ (0..^(#‘𝐹))) → (𝑦𝑆) < (#‘𝐹)))
6531, 64sylbi 206 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36 (𝑦 ∈ (0..^(#‘𝐹)) → (((#‘𝐹) ∈ ℕ0𝑆 ∈ (0..^(#‘𝐹))) → (𝑦𝑆) < (#‘𝐹)))
6665impcom 445 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35 ((((#‘𝐹) ∈ ℕ0𝑆 ∈ (0..^(#‘𝐹))) ∧ 𝑦 ∈ (0..^(#‘𝐹))) → (𝑦𝑆) < (#‘𝐹))
6766adantl 481 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34 ((𝑆𝑦 ∧ (((#‘𝐹) ∈ ℕ0𝑆 ∈ (0..^(#‘𝐹))) ∧ 𝑦 ∈ (0..^(#‘𝐹)))) → (𝑦𝑆) < (#‘𝐹))
68 elfzo0 12376 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34 ((𝑦𝑆) ∈ (0..^(#‘𝐹)) ↔ ((𝑦𝑆) ∈ ℕ0 ∧ (#‘𝐹) ∈ ℕ ∧ (𝑦𝑆) < (#‘𝐹)))
6930, 34, 67, 68syl3anbrc 1239 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33 ((𝑆𝑦 ∧ (((#‘𝐹) ∈ ℕ0𝑆 ∈ (0..^(#‘𝐹))) ∧ 𝑦 ∈ (0..^(#‘𝐹)))) → (𝑦𝑆) ∈ (0..^(#‘𝐹)))
70 oveq1 6556 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36 (𝑧 = (𝑦𝑆) → (𝑧 + 𝑆) = ((𝑦𝑆) + 𝑆))
7170oveq1d 6564 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35 (𝑧 = (𝑦𝑆) → ((𝑧 + 𝑆) mod (#‘𝐹)) = (((𝑦𝑆) + 𝑆) mod (#‘𝐹)))
7240zcnd 11359 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41 (𝑆 ∈ (0..^(#‘𝐹)) → 𝑆 ∈ ℂ)
7372adantl 481 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40 (((#‘𝐹) ∈ ℕ0𝑆 ∈ (0..^(#‘𝐹))) → 𝑆 ∈ ℂ)
74 elfzoelz 12339 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41 (𝑦 ∈ (0..^(#‘𝐹)) → 𝑦 ∈ ℤ)
7574zcnd 11359 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40 (𝑦 ∈ (0..^(#‘𝐹)) → 𝑦 ∈ ℂ)
7673, 75anim12ci 589 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39 ((((#‘𝐹) ∈ ℕ0𝑆 ∈ (0..^(#‘𝐹))) ∧ 𝑦 ∈ (0..^(#‘𝐹))) → (𝑦 ∈ ℂ ∧ 𝑆 ∈ ℂ))
7776adantl 481 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38 ((𝑆𝑦 ∧ (((#‘𝐹) ∈ ℕ0𝑆 ∈ (0..^(#‘𝐹))) ∧ 𝑦 ∈ (0..^(#‘𝐹)))) → (𝑦 ∈ ℂ ∧ 𝑆 ∈ ℂ))
78 npcan 10169 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38 ((𝑦 ∈ ℂ ∧ 𝑆 ∈ ℂ) → ((𝑦𝑆) + 𝑆) = 𝑦)
7977, 78syl 17 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37 ((𝑆𝑦 ∧ (((#‘𝐹) ∈ ℕ0𝑆 ∈ (0..^(#‘𝐹))) ∧ 𝑦 ∈ (0..^(#‘𝐹)))) → ((𝑦𝑆) + 𝑆) = 𝑦)
8079oveq1d 6564 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36 ((𝑆𝑦 ∧ (((#‘𝐹) ∈ ℕ0𝑆 ∈ (0..^(#‘𝐹))) ∧ 𝑦 ∈ (0..^(#‘𝐹)))) → (((𝑦𝑆) + 𝑆) mod (#‘𝐹)) = (𝑦 mod (#‘𝐹)))
81 zmodidfzoimp 12562 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37 (𝑦 ∈ (0..^(#‘𝐹)) → (𝑦 mod (#‘𝐹)) = 𝑦)
8281ad2antll 761 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36 ((𝑆𝑦 ∧ (((#‘𝐹) ∈ ℕ0𝑆 ∈ (0..^(#‘𝐹))) ∧ 𝑦 ∈ (0..^(#‘𝐹)))) → (𝑦 mod (#‘𝐹)) = 𝑦)
8380, 82eqtrd 2644 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35 ((𝑆𝑦 ∧ (((#‘𝐹) ∈ ℕ0𝑆 ∈ (0..^(#‘𝐹))) ∧ 𝑦 ∈ (0..^(#‘𝐹)))) → (((𝑦𝑆) + 𝑆) mod (#‘𝐹)) = 𝑦)
8471, 83sylan9eqr 2666 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34 (((𝑆𝑦 ∧ (((#‘𝐹) ∈ ℕ0𝑆 ∈ (0..^(#‘𝐹))) ∧ 𝑦 ∈ (0..^(#‘𝐹)))) ∧ 𝑧 = (𝑦𝑆)) → ((𝑧 + 𝑆) mod (#‘𝐹)) = 𝑦)
8584eqcomd 2616 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33 (((𝑆𝑦 ∧ (((#‘𝐹) ∈ ℕ0𝑆 ∈ (0..^(#‘𝐹))) ∧ 𝑦 ∈ (0..^(#‘𝐹)))) ∧ 𝑧 = (𝑦𝑆)) → 𝑦 = ((𝑧 + 𝑆) mod (#‘𝐹)))
8669, 85rspcedeq2vd 3291 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32 ((𝑆𝑦 ∧ (((#‘𝐹) ∈ ℕ0𝑆 ∈ (0..^(#‘𝐹))) ∧ 𝑦 ∈ (0..^(#‘𝐹)))) → ∃𝑧 ∈ (0..^(#‘𝐹))𝑦 = ((𝑧 + 𝑆) mod (#‘𝐹)))
87 elfzo0 12376 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39 (𝑆 ∈ (0..^(#‘𝐹)) ↔ (𝑆 ∈ ℕ0 ∧ (#‘𝐹) ∈ ℕ ∧ 𝑆 < (#‘𝐹)))
88 nn0cn 11179 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46 (𝑦 ∈ ℕ0𝑦 ∈ ℂ)
8988ad2antrr 758 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45 (((𝑦 ∈ ℕ0𝑦 < (#‘𝐹)) ∧ (𝑆 ∈ ℕ0 ∧ (#‘𝐹) ∈ ℕ ∧ 𝑆 < (#‘𝐹))) → 𝑦 ∈ ℂ)
90 nn0cn 11179 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47 (𝑆 ∈ ℕ0𝑆 ∈ ℂ)
91903ad2ant1 1075 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46 ((𝑆 ∈ ℕ0 ∧ (#‘𝐹) ∈ ℕ ∧ 𝑆 < (#‘𝐹)) → 𝑆 ∈ ℂ)
9291adantl 481 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45 (((𝑦 ∈ ℕ0𝑦 < (#‘𝐹)) ∧ (𝑆 ∈ ℕ0 ∧ (#‘𝐹) ∈ ℕ ∧ 𝑆 < (#‘𝐹))) → 𝑆 ∈ ℂ)
93 nncn 10905 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47 ((#‘𝐹) ∈ ℕ → (#‘𝐹) ∈ ℂ)
94933ad2ant2 1076 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46 ((𝑆 ∈ ℕ0 ∧ (#‘𝐹) ∈ ℕ ∧ 𝑆 < (#‘𝐹)) → (#‘𝐹) ∈ ℂ)
9594adantl 481 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45 (((𝑦 ∈ ℕ0𝑦 < (#‘𝐹)) ∧ (𝑆 ∈ ℕ0 ∧ (#‘𝐹) ∈ ℕ ∧ 𝑆 < (#‘𝐹))) → (#‘𝐹) ∈ ℂ)
9689, 92, 95subadd23d 10293 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44 (((𝑦 ∈ ℕ0𝑦 < (#‘𝐹)) ∧ (𝑆 ∈ ℕ0 ∧ (#‘𝐹) ∈ ℕ ∧ 𝑆 < (#‘𝐹))) → ((𝑦𝑆) + (#‘𝐹)) = (𝑦 + ((#‘𝐹) − 𝑆)))
97 simpll 786 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45 (((𝑦 ∈ ℕ0𝑦 < (#‘𝐹)) ∧ (𝑆 ∈ ℕ0 ∧ (#‘𝐹) ∈ ℕ ∧ 𝑆 < (#‘𝐹))) → 𝑦 ∈ ℕ0)
98 nn0z 11277 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49 (𝑆 ∈ ℕ0𝑆 ∈ ℤ)
99 nnz 11276 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49 ((#‘𝐹) ∈ ℕ → (#‘𝐹) ∈ ℤ)
100 znnsub 11300 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49 ((𝑆 ∈ ℤ ∧ (#‘𝐹) ∈ ℤ) → (𝑆 < (#‘𝐹) ↔ ((#‘𝐹) − 𝑆) ∈ ℕ))
10198, 99, 100syl2an 493 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48 ((𝑆 ∈ ℕ0 ∧ (#‘𝐹) ∈ ℕ) → (𝑆 < (#‘𝐹) ↔ ((#‘𝐹) − 𝑆) ∈ ℕ))
102101biimp3a 1424 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47 ((𝑆 ∈ ℕ0 ∧ (#‘𝐹) ∈ ℕ ∧ 𝑆 < (#‘𝐹)) → ((#‘𝐹) − 𝑆) ∈ ℕ)
103102adantl 481 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46 (((𝑦 ∈ ℕ0𝑦 < (#‘𝐹)) ∧ (𝑆 ∈ ℕ0 ∧ (#‘𝐹) ∈ ℕ ∧ 𝑆 < (#‘𝐹))) → ((#‘𝐹) − 𝑆) ∈ ℕ)
104103nnnn0d 11228 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45 (((𝑦 ∈ ℕ0𝑦 < (#‘𝐹)) ∧ (𝑆 ∈ ℕ0 ∧ (#‘𝐹) ∈ ℕ ∧ 𝑆 < (#‘𝐹))) → ((#‘𝐹) − 𝑆) ∈ ℕ0)
10597, 104nn0addcld 11232 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44 (((𝑦 ∈ ℕ0𝑦 < (#‘𝐹)) ∧ (𝑆 ∈ ℕ0 ∧ (#‘𝐹) ∈ ℕ ∧ 𝑆 < (#‘𝐹))) → (𝑦 + ((#‘𝐹) − 𝑆)) ∈ ℕ0)
10696, 105eqeltrd 2688 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43 (((𝑦 ∈ ℕ0𝑦 < (#‘𝐹)) ∧ (𝑆 ∈ ℕ0 ∧ (#‘𝐹) ∈ ℕ ∧ 𝑆 < (#‘𝐹))) → ((𝑦𝑆) + (#‘𝐹)) ∈ ℕ0)
107106adantr 480 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42 ((((𝑦 ∈ ℕ0𝑦 < (#‘𝐹)) ∧ (𝑆 ∈ ℕ0 ∧ (#‘𝐹) ∈ ℕ ∧ 𝑆 < (#‘𝐹))) ∧ ¬ 𝑆𝑦) → ((𝑦𝑆) + (#‘𝐹)) ∈ ℕ0)
108 simplr2 1097 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42 ((((𝑦 ∈ ℕ0𝑦 < (#‘𝐹)) ∧ (𝑆 ∈ ℕ0 ∧ (#‘𝐹) ∈ ℕ ∧ 𝑆 < (#‘𝐹))) ∧ ¬ 𝑆𝑦) → (#‘𝐹) ∈ ℕ)
10988adantr 480 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47 ((𝑦 ∈ ℕ0𝑦 < (#‘𝐹)) → 𝑦 ∈ ℂ)
110 subcl 10159 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47 ((𝑦 ∈ ℂ ∧ 𝑆 ∈ ℂ) → (𝑦𝑆) ∈ ℂ)
111109, 91, 110syl2an 493 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46 (((𝑦 ∈ ℕ0𝑦 < (#‘𝐹)) ∧ (𝑆 ∈ ℕ0 ∧ (#‘𝐹) ∈ ℕ ∧ 𝑆 < (#‘𝐹))) → (𝑦𝑆) ∈ ℂ)
11295, 111jca 553 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45 (((𝑦 ∈ ℕ0𝑦 < (#‘𝐹)) ∧ (𝑆 ∈ ℕ0 ∧ (#‘𝐹) ∈ ℕ ∧ 𝑆 < (#‘𝐹))) → ((#‘𝐹) ∈ ℂ ∧ (𝑦𝑆) ∈ ℂ))
113112adantr 480 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44 ((((𝑦 ∈ ℕ0𝑦 < (#‘𝐹)) ∧ (𝑆 ∈ ℕ0 ∧ (#‘𝐹) ∈ ℕ ∧ 𝑆 < (#‘𝐹))) ∧ ¬ 𝑆𝑦) → ((#‘𝐹) ∈ ℂ ∧ (𝑦𝑆) ∈ ℂ))
114 addcom 10101 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44 (((#‘𝐹) ∈ ℂ ∧ (𝑦𝑆) ∈ ℂ) → ((#‘𝐹) + (𝑦𝑆)) = ((𝑦𝑆) + (#‘𝐹)))
115113, 114syl 17 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43 ((((𝑦 ∈ ℕ0𝑦 < (#‘𝐹)) ∧ (𝑆 ∈ ℕ0 ∧ (#‘𝐹) ∈ ℕ ∧ 𝑆 < (#‘𝐹))) ∧ ¬ 𝑆𝑦) → ((#‘𝐹) + (𝑦𝑆)) = ((𝑦𝑆) + (#‘𝐹)))
11635adantr 480 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46 ((𝑦 ∈ ℕ0𝑦 < (#‘𝐹)) → 𝑦 ∈ ℝ)
117 nn0re 11178 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47 (𝑆 ∈ ℕ0𝑆 ∈ ℝ)
1181173ad2ant1 1075 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46 ((𝑆 ∈ ℕ0 ∧ (#‘𝐹) ∈ ℕ ∧ 𝑆 < (#‘𝐹)) → 𝑆 ∈ ℝ)
119 ltnle 9996 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47 ((𝑦 ∈ ℝ ∧ 𝑆 ∈ ℝ) → (𝑦 < 𝑆 ↔ ¬ 𝑆𝑦))
120 simpl 472 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49 ((𝑦 ∈ ℝ ∧ 𝑆 ∈ ℝ) → 𝑦 ∈ ℝ)
121 simpr 476 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49 ((𝑦 ∈ ℝ ∧ 𝑆 ∈ ℝ) → 𝑆 ∈ ℝ)
122120, 121sublt0d 10532 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48 ((𝑦 ∈ ℝ ∧ 𝑆 ∈ ℝ) → ((𝑦𝑆) < 0 ↔ 𝑦 < 𝑆))
123122biimprd 237 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47 ((𝑦 ∈ ℝ ∧ 𝑆 ∈ ℝ) → (𝑦 < 𝑆 → (𝑦𝑆) < 0))
124119, 123sylbird 249 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46 ((𝑦 ∈ ℝ ∧ 𝑆 ∈ ℝ) → (¬ 𝑆𝑦 → (𝑦𝑆) < 0))
125116, 118, 124syl2an 493 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45 (((𝑦 ∈ ℕ0𝑦 < (#‘𝐹)) ∧ (𝑆 ∈ ℕ0 ∧ (#‘𝐹) ∈ ℕ ∧ 𝑆 < (#‘𝐹))) → (¬ 𝑆𝑦 → (𝑦𝑆) < 0))
126125imp 444 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44 ((((𝑦 ∈ ℕ0𝑦 < (#‘𝐹)) ∧ (𝑆 ∈ ℕ0 ∧ (#‘𝐹) ∈ ℕ ∧ 𝑆 < (#‘𝐹))) ∧ ¬ 𝑆𝑦) → (𝑦𝑆) < 0)
127 resubcl 10224 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48 ((𝑦 ∈ ℝ ∧ 𝑆 ∈ ℝ) → (𝑦𝑆) ∈ ℝ)
128116, 118, 127syl2an 493 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47 (((𝑦 ∈ ℕ0𝑦 < (#‘𝐹)) ∧ (𝑆 ∈ ℕ0 ∧ (#‘𝐹) ∈ ℕ ∧ 𝑆 < (#‘𝐹))) → (𝑦𝑆) ∈ ℝ)
129373ad2ant2 1076 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48 ((𝑆 ∈ ℕ0 ∧ (#‘𝐹) ∈ ℕ ∧ 𝑆 < (#‘𝐹)) → (#‘𝐹) ∈ ℝ)
130129adantl 481 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47 (((𝑦 ∈ ℕ0𝑦 < (#‘𝐹)) ∧ (𝑆 ∈ ℕ0 ∧ (#‘𝐹) ∈ ℕ ∧ 𝑆 < (#‘𝐹))) → (#‘𝐹) ∈ ℝ)
131128, 130jca 553 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46 (((𝑦 ∈ ℕ0𝑦 < (#‘𝐹)) ∧ (𝑆 ∈ ℕ0 ∧ (#‘𝐹) ∈ ℕ ∧ 𝑆 < (#‘𝐹))) → ((𝑦𝑆) ∈ ℝ ∧ (#‘𝐹) ∈ ℝ))
132131adantr 480 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45 ((((𝑦 ∈ ℕ0𝑦 < (#‘𝐹)) ∧ (𝑆 ∈ ℕ0 ∧ (#‘𝐹) ∈ ℕ ∧ 𝑆 < (#‘𝐹))) ∧ ¬ 𝑆𝑦) → ((𝑦𝑆) ∈ ℝ ∧ (#‘𝐹) ∈ ℝ))
133 ltaddneg 10130 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45 (((𝑦𝑆) ∈ ℝ ∧ (#‘𝐹) ∈ ℝ) → ((𝑦𝑆) < 0 ↔ ((#‘𝐹) + (𝑦𝑆)) < (#‘𝐹)))
134132, 133syl 17 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44 ((((𝑦 ∈ ℕ0𝑦 < (#‘𝐹)) ∧ (𝑆 ∈ ℕ0 ∧ (#‘𝐹) ∈ ℕ ∧ 𝑆 < (#‘𝐹))) ∧ ¬ 𝑆𝑦) → ((𝑦𝑆) < 0 ↔ ((#‘𝐹) + (𝑦𝑆)) < (#‘𝐹)))
135126, 134mpbid 221 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43 ((((𝑦 ∈ ℕ0𝑦 < (#‘𝐹)) ∧ (𝑆 ∈ ℕ0 ∧ (#‘𝐹) ∈ ℕ ∧ 𝑆 < (#‘𝐹))) ∧ ¬ 𝑆𝑦) → ((#‘𝐹) + (𝑦𝑆)) < (#‘𝐹))
136115, 135eqbrtrrd 4607 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42 ((((𝑦 ∈ ℕ0𝑦 < (#‘𝐹)) ∧ (𝑆 ∈ ℕ0 ∧ (#‘𝐹) ∈ ℕ ∧ 𝑆 < (#‘𝐹))) ∧ ¬ 𝑆𝑦) → ((𝑦𝑆) + (#‘𝐹)) < (#‘𝐹))
137107, 108, 1363jca 1235 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41 ((((𝑦 ∈ ℕ0𝑦 < (#‘𝐹)) ∧ (𝑆 ∈ ℕ0 ∧ (#‘𝐹) ∈ ℕ ∧ 𝑆 < (#‘𝐹))) ∧ ¬ 𝑆𝑦) → (((𝑦𝑆) + (#‘𝐹)) ∈ ℕ0 ∧ (#‘𝐹) ∈ ℕ ∧ ((𝑦𝑆) + (#‘𝐹)) < (#‘𝐹)))
138137exp31 628 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40 ((𝑦 ∈ ℕ0𝑦 < (#‘𝐹)) → ((𝑆 ∈ ℕ0 ∧ (#‘𝐹) ∈ ℕ ∧ 𝑆 < (#‘𝐹)) → (¬ 𝑆𝑦 → (((𝑦𝑆) + (#‘𝐹)) ∈ ℕ0 ∧ (#‘𝐹) ∈ ℕ ∧ ((𝑦𝑆) + (#‘𝐹)) < (#‘𝐹)))))
1391383adant2 1073 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39 ((𝑦 ∈ ℕ0 ∧ (#‘𝐹) ∈ ℕ ∧ 𝑦 < (#‘𝐹)) → ((𝑆 ∈ ℕ0 ∧ (#‘𝐹) ∈ ℕ ∧ 𝑆 < (#‘𝐹)) → (¬ 𝑆𝑦 → (((𝑦𝑆) + (#‘𝐹)) ∈ ℕ0 ∧ (#‘𝐹) ∈ ℕ ∧ ((𝑦𝑆) + (#‘𝐹)) < (#‘𝐹)))))
14087, 139syl5bi 231 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38 ((𝑦 ∈ ℕ0 ∧ (#‘𝐹) ∈ ℕ ∧ 𝑦 < (#‘𝐹)) → (𝑆 ∈ (0..^(#‘𝐹)) → (¬ 𝑆𝑦 → (((𝑦𝑆) + (#‘𝐹)) ∈ ℕ0 ∧ (#‘𝐹) ∈ ℕ ∧ ((𝑦𝑆) + (#‘𝐹)) < (#‘𝐹)))))
141140adantld 482 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37 ((𝑦 ∈ ℕ0 ∧ (#‘𝐹) ∈ ℕ ∧ 𝑦 < (#‘𝐹)) → (((#‘𝐹) ∈ ℕ0𝑆 ∈ (0..^(#‘𝐹))) → (¬ 𝑆𝑦 → (((𝑦𝑆) + (#‘𝐹)) ∈ ℕ0 ∧ (#‘𝐹) ∈ ℕ ∧ ((𝑦𝑆) + (#‘𝐹)) < (#‘𝐹)))))
14231, 141sylbi 206 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36 (𝑦 ∈ (0..^(#‘𝐹)) → (((#‘𝐹) ∈ ℕ0𝑆 ∈ (0..^(#‘𝐹))) → (¬ 𝑆𝑦 → (((𝑦𝑆) + (#‘𝐹)) ∈ ℕ0 ∧ (#‘𝐹) ∈ ℕ ∧ ((𝑦𝑆) + (#‘𝐹)) < (#‘𝐹)))))
143142impcom 445 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35 ((((#‘𝐹) ∈ ℕ0𝑆 ∈ (0..^(#‘𝐹))) ∧ 𝑦 ∈ (0..^(#‘𝐹))) → (¬ 𝑆𝑦 → (((𝑦𝑆) + (#‘𝐹)) ∈ ℕ0 ∧ (#‘𝐹) ∈ ℕ ∧ ((𝑦𝑆) + (#‘𝐹)) < (#‘𝐹))))
144143impcom 445 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34 ((¬ 𝑆𝑦 ∧ (((#‘𝐹) ∈ ℕ0𝑆 ∈ (0..^(#‘𝐹))) ∧ 𝑦 ∈ (0..^(#‘𝐹)))) → (((𝑦𝑆) + (#‘𝐹)) ∈ ℕ0 ∧ (#‘𝐹) ∈ ℕ ∧ ((𝑦𝑆) + (#‘𝐹)) < (#‘𝐹)))
145 elfzo0 12376 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34 (((𝑦𝑆) + (#‘𝐹)) ∈ (0..^(#‘𝐹)) ↔ (((𝑦𝑆) + (#‘𝐹)) ∈ ℕ0 ∧ (#‘𝐹) ∈ ℕ ∧ ((𝑦𝑆) + (#‘𝐹)) < (#‘𝐹)))
146144, 145sylibr 223 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33 ((¬ 𝑆𝑦 ∧ (((#‘𝐹) ∈ ℕ0𝑆 ∈ (0..^(#‘𝐹))) ∧ 𝑦 ∈ (0..^(#‘𝐹)))) → ((𝑦𝑆) + (#‘𝐹)) ∈ (0..^(#‘𝐹)))
147 oveq1 6556 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36 (𝑧 = ((𝑦𝑆) + (#‘𝐹)) → (𝑧 + 𝑆) = (((𝑦𝑆) + (#‘𝐹)) + 𝑆))
148147oveq1d 6564 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35 (𝑧 = ((𝑦𝑆) + (#‘𝐹)) → ((𝑧 + 𝑆) mod (#‘𝐹)) = ((((𝑦𝑆) + (#‘𝐹)) + 𝑆) mod (#‘𝐹)))
14973adantr 480 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40 ((((#‘𝐹) ∈ ℕ0𝑆 ∈ (0..^(#‘𝐹))) ∧ 𝑦 ∈ (0..^(#‘𝐹))) → 𝑆 ∈ ℂ)
15075adantl 481 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40 ((((#‘𝐹) ∈ ℕ0𝑆 ∈ (0..^(#‘𝐹))) ∧ 𝑦 ∈ (0..^(#‘𝐹))) → 𝑦 ∈ ℂ)
151 nn0cn 11179 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41 ((#‘𝐹) ∈ ℕ0 → (#‘𝐹) ∈ ℂ)
152151ad2antrr 758 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40 ((((#‘𝐹) ∈ ℕ0𝑆 ∈ (0..^(#‘𝐹))) ∧ 𝑦 ∈ (0..^(#‘𝐹))) → (#‘𝐹) ∈ ℂ)
153149, 150, 1523jca 1235 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39 ((((#‘𝐹) ∈ ℕ0𝑆 ∈ (0..^(#‘𝐹))) ∧ 𝑦 ∈ (0..^(#‘𝐹))) → (𝑆 ∈ ℂ ∧ 𝑦 ∈ ℂ ∧ (#‘𝐹) ∈ ℂ))
154153adantl 481 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38 ((¬ 𝑆𝑦 ∧ (((#‘𝐹) ∈ ℕ0𝑆 ∈ (0..^(#‘𝐹))) ∧ 𝑦 ∈ (0..^(#‘𝐹)))) → (𝑆 ∈ ℂ ∧ 𝑦 ∈ ℂ ∧ (#‘𝐹) ∈ ℂ))
155 simp2 1055 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39 ((𝑆 ∈ ℂ ∧ 𝑦 ∈ ℂ ∧ (#‘𝐹) ∈ ℂ) → 𝑦 ∈ ℂ)
156 simp3 1056 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39 ((𝑆 ∈ ℂ ∧ 𝑦 ∈ ℂ ∧ (#‘𝐹) ∈ ℂ) → (#‘𝐹) ∈ ℂ)
157 simp1 1054 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40 ((𝑆 ∈ ℂ ∧ 𝑦 ∈ ℂ ∧ (#‘𝐹) ∈ ℂ) → 𝑆 ∈ ℂ)
158155, 157, 156nppcand 10296 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39 ((𝑆 ∈ ℂ ∧ 𝑦 ∈ ℂ ∧ (#‘𝐹) ∈ ℂ) → (((𝑦𝑆) + (#‘𝐹)) + 𝑆) = (𝑦 + (#‘𝐹)))
159155, 156, 158comraddd 10129 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38 ((𝑆 ∈ ℂ ∧ 𝑦 ∈ ℂ ∧ (#‘𝐹) ∈ ℂ) → (((𝑦𝑆) + (#‘𝐹)) + 𝑆) = ((#‘𝐹) + 𝑦))
160154, 159syl 17 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37 ((¬ 𝑆𝑦 ∧ (((#‘𝐹) ∈ ℕ0𝑆 ∈ (0..^(#‘𝐹))) ∧ 𝑦 ∈ (0..^(#‘𝐹)))) → (((𝑦𝑆) + (#‘𝐹)) + 𝑆) = ((#‘𝐹) + 𝑦))
161160oveq1d 6564 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36 ((¬ 𝑆𝑦 ∧ (((#‘𝐹) ∈ ℕ0𝑆 ∈ (0..^(#‘𝐹))) ∧ 𝑦 ∈ (0..^(#‘𝐹)))) → ((((𝑦𝑆) + (#‘𝐹)) + 𝑆) mod (#‘𝐹)) = (((#‘𝐹) + 𝑦) mod (#‘𝐹)))
16231biimpi 205 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38 (𝑦 ∈ (0..^(#‘𝐹)) → (𝑦 ∈ ℕ0 ∧ (#‘𝐹) ∈ ℕ ∧ 𝑦 < (#‘𝐹)))
163162ad2antll 761 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37 ((¬ 𝑆𝑦 ∧ (((#‘𝐹) ∈ ℕ0𝑆 ∈ (0..^(#‘𝐹))) ∧ 𝑦 ∈ (0..^(#‘𝐹)))) → (𝑦 ∈ ℕ0 ∧ (#‘𝐹) ∈ ℕ ∧ 𝑦 < (#‘𝐹)))
164 addmodid 12580 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37 ((𝑦 ∈ ℕ0 ∧ (#‘𝐹) ∈ ℕ ∧ 𝑦 < (#‘𝐹)) → (((#‘𝐹) + 𝑦) mod (#‘𝐹)) = 𝑦)
165163, 164syl 17 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36 ((¬ 𝑆𝑦 ∧ (((#‘𝐹) ∈ ℕ0𝑆 ∈ (0..^(#‘𝐹))) ∧ 𝑦 ∈ (0..^(#‘𝐹)))) → (((#‘𝐹) + 𝑦) mod (#‘𝐹)) = 𝑦)
166161, 165eqtrd 2644 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35 ((¬ 𝑆𝑦 ∧ (((#‘𝐹) ∈ ℕ0𝑆 ∈ (0..^(#‘𝐹))) ∧ 𝑦 ∈ (0..^(#‘𝐹)))) → ((((𝑦𝑆) + (#‘𝐹)) + 𝑆) mod (#‘𝐹)) = 𝑦)
167148, 166sylan9eqr 2666 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34 (((¬ 𝑆𝑦 ∧ (((#‘𝐹) ∈ ℕ0𝑆 ∈ (0..^(#‘𝐹))) ∧ 𝑦 ∈ (0..^(#‘𝐹)))) ∧ 𝑧 = ((𝑦𝑆) + (#‘𝐹))) → ((𝑧 + 𝑆) mod (#‘𝐹)) = 𝑦)
168167eqcomd 2616 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33 (((¬ 𝑆𝑦 ∧ (((#‘𝐹) ∈ ℕ0𝑆 ∈ (0..^(#‘𝐹))) ∧ 𝑦 ∈ (0..^(#‘𝐹)))) ∧ 𝑧 = ((𝑦𝑆) + (#‘𝐹))) → 𝑦 = ((𝑧 + 𝑆) mod (#‘𝐹)))
169146, 168rspcedeq2vd 3291 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32 ((¬ 𝑆𝑦 ∧ (((#‘𝐹) ∈ ℕ0𝑆 ∈ (0..^(#‘𝐹))) ∧ 𝑦 ∈ (0..^(#‘𝐹)))) → ∃𝑧 ∈ (0..^(#‘𝐹))𝑦 = ((𝑧 + 𝑆) mod (#‘𝐹)))
17086, 169pm2.61ian 827 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 ((((#‘𝐹) ∈ ℕ0𝑆 ∈ (0..^(#‘𝐹))) ∧ 𝑦 ∈ (0..^(#‘𝐹))) → ∃𝑧 ∈ (0..^(#‘𝐹))𝑦 = ((𝑧 + 𝑆) mod (#‘𝐹)))
17123rexeqi 3120 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 (∃𝑧 ∈ (0..^𝑁)𝑦 = ((𝑧 + 𝑆) mod (#‘𝐹)) ↔ ∃𝑧 ∈ (0..^(#‘𝐹))𝑦 = ((𝑧 + 𝑆) mod (#‘𝐹)))
172170, 171sylibr 223 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30 ((((#‘𝐹) ∈ ℕ0𝑆 ∈ (0..^(#‘𝐹))) ∧ 𝑦 ∈ (0..^(#‘𝐹))) → ∃𝑧 ∈ (0..^𝑁)𝑦 = ((𝑧 + 𝑆) mod (#‘𝐹)))
173172exp31 628 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29 ((#‘𝐹) ∈ ℕ0 → (𝑆 ∈ (0..^(#‘𝐹)) → (𝑦 ∈ (0..^(#‘𝐹)) → ∃𝑧 ∈ (0..^𝑁)𝑦 = ((𝑧 + 𝑆) mod (#‘𝐹)))))
17424, 173syl5bi 231 . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 ((#‘𝐹) ∈ ℕ0 → (𝑆 ∈ (0..^𝑁) → (𝑦 ∈ (0..^(#‘𝐹)) → ∃𝑧 ∈ (0..^𝑁)𝑦 = ((𝑧 + 𝑆) mod (#‘𝐹)))))
17522, 174syl 17 . . . . . . . . . . . . . . . . . . . . . . . . . . 27 (𝐹 ∈ Word dom 𝐼 → (𝑆 ∈ (0..^𝑁) → (𝑦 ∈ (0..^(#‘𝐹)) → ∃𝑧 ∈ (0..^𝑁)𝑦 = ((𝑧 + 𝑆) mod (#‘𝐹)))))
17620, 21, 1753syl 18 . . . . . . . . . . . . . . . . . . . . . . . . . 26 (𝐹(CircuitS‘𝐺)𝑃 → (𝑆 ∈ (0..^𝑁) → (𝑦 ∈ (0..^(#‘𝐹)) → ∃𝑧 ∈ (0..^𝑁)𝑦 = ((𝑧 + 𝑆) mod (#‘𝐹)))))
1773, 5, 176sylc 63 . . . . . . . . . . . . . . . . . . . . . . . . 25 (𝜑 → (𝑦 ∈ (0..^(#‘𝐹)) → ∃𝑧 ∈ (0..^𝑁)𝑦 = ((𝑧 + 𝑆) mod (#‘𝐹))))
178177adantr 480 . . . . . . . . . . . . . . . . . . . . . . . 24 ((𝜑𝑖 ∈ dom 𝐼) → (𝑦 ∈ (0..^(#‘𝐹)) → ∃𝑧 ∈ (0..^𝑁)𝑦 = ((𝑧 + 𝑆) mod (#‘𝐹))))
179178imp 444 . . . . . . . . . . . . . . . . . . . . . . 23 (((𝜑𝑖 ∈ dom 𝐼) ∧ 𝑦 ∈ (0..^(#‘𝐹))) → ∃𝑧 ∈ (0..^𝑁)𝑦 = ((𝑧 + 𝑆) mod (#‘𝐹)))
180179adantr 480 . . . . . . . . . . . . . . . . . . . . . 22 ((((𝜑𝑖 ∈ dom 𝐼) ∧ 𝑦 ∈ (0..^(#‘𝐹))) ∧ 𝑖 = (𝐹𝑦)) → ∃𝑧 ∈ (0..^𝑁)𝑦 = ((𝑧 + 𝑆) mod (#‘𝐹)))
181 fveq2 6103 . . . . . . . . . . . . . . . . . . . . . . 23 (𝑦 = ((𝑧 + 𝑆) mod (#‘𝐹)) → (𝐹𝑦) = (𝐹‘((𝑧 + 𝑆) mod (#‘𝐹))))
182181reximi 2994 . . . . . . . . . . . . . . . . . . . . . 22 (∃𝑧 ∈ (0..^𝑁)𝑦 = ((𝑧 + 𝑆) mod (#‘𝐹)) → ∃𝑧 ∈ (0..^𝑁)(𝐹𝑦) = (𝐹‘((𝑧 + 𝑆) mod (#‘𝐹))))
183180, 182syl 17 . . . . . . . . . . . . . . . . . . . . 21 ((((𝜑𝑖 ∈ dom 𝐼) ∧ 𝑦 ∈ (0..^(#‘𝐹))) ∧ 𝑖 = (𝐹𝑦)) → ∃𝑧 ∈ (0..^𝑁)(𝐹𝑦) = (𝐹‘((𝑧 + 𝑆) mod (#‘𝐹))))
1843, 20, 213syl 18 . . . . . . . . . . . . . . . . . . . . . . . . 25 (𝜑𝐹 ∈ Word dom 𝐼)
185184ad3antrrr 762 . . . . . . . . . . . . . . . . . . . . . . . 24 ((((𝜑𝑖 ∈ dom 𝐼) ∧ 𝑦 ∈ (0..^(#‘𝐹))) ∧ 𝑖 = (𝐹𝑦)) → 𝐹 ∈ Word dom 𝐼)
186 elfzoelz 12339 . . . . . . . . . . . . . . . . . . . . . . . . . 26 (𝑆 ∈ (0..^𝑁) → 𝑆 ∈ ℤ)
1875, 186syl 17 . . . . . . . . . . . . . . . . . . . . . . . . 25 (𝜑𝑆 ∈ ℤ)
188187ad3antrrr 762 . . . . . . . . . . . . . . . . . . . . . . . 24 ((((𝜑𝑖 ∈ dom 𝐼) ∧ 𝑦 ∈ (0..^(#‘𝐹))) ∧ 𝑖 = (𝐹𝑦)) → 𝑆 ∈ ℤ)
18923eleq2i 2680 . . . . . . . . . . . . . . . . . . . . . . . . 25 (𝑧 ∈ (0..^𝑁) ↔ 𝑧 ∈ (0..^(#‘𝐹)))
190189biimpi 205 . . . . . . . . . . . . . . . . . . . . . . . 24 (𝑧 ∈ (0..^𝑁) → 𝑧 ∈ (0..^(#‘𝐹)))
191 cshwidxmod 13400 . . . . . . . . . . . . . . . . . . . . . . . 24 ((𝐹 ∈ Word dom 𝐼𝑆 ∈ ℤ ∧ 𝑧 ∈ (0..^(#‘𝐹))) → ((𝐹 cyclShift 𝑆)‘𝑧) = (𝐹‘((𝑧 + 𝑆) mod (#‘𝐹))))
192185, 188, 190, 191syl2an3an 1378 . . . . . . . . . . . . . . . . . . . . . . 23 (((((𝜑𝑖 ∈ dom 𝐼) ∧ 𝑦 ∈ (0..^(#‘𝐹))) ∧ 𝑖 = (𝐹𝑦)) ∧ 𝑧 ∈ (0..^𝑁)) → ((𝐹 cyclShift 𝑆)‘𝑧) = (𝐹‘((𝑧 + 𝑆) mod (#‘𝐹))))
193192eqeq2d 2620 . . . . . . . . . . . . . . . . . . . . . 22 (((((𝜑𝑖 ∈ dom 𝐼) ∧ 𝑦 ∈ (0..^(#‘𝐹))) ∧ 𝑖 = (𝐹𝑦)) ∧ 𝑧 ∈ (0..^𝑁)) → ((𝐹𝑦) = ((𝐹 cyclShift 𝑆)‘𝑧) ↔ (𝐹𝑦) = (𝐹‘((𝑧 + 𝑆) mod (#‘𝐹)))))
194193rexbidva 3031 . . . . . . . . . . . . . . . . . . . . 21 ((((𝜑𝑖 ∈ dom 𝐼) ∧ 𝑦 ∈ (0..^(#‘𝐹))) ∧ 𝑖 = (𝐹𝑦)) → (∃𝑧 ∈ (0..^𝑁)(𝐹𝑦) = ((𝐹 cyclShift 𝑆)‘𝑧) ↔ ∃𝑧 ∈ (0..^𝑁)(𝐹𝑦) = (𝐹‘((𝑧 + 𝑆) mod (#‘𝐹)))))
195183, 194mpbird 246 . . . . . . . . . . . . . . . . . . . 20 ((((𝜑𝑖 ∈ dom 𝐼) ∧ 𝑦 ∈ (0..^(#‘𝐹))) ∧ 𝑖 = (𝐹𝑦)) → ∃𝑧 ∈ (0..^𝑁)(𝐹𝑦) = ((𝐹 cyclShift 𝑆)‘𝑧))
1961, 2, 3, 4, 5, 6crctcshlem2 41021 . . . . . . . . . . . . . . . . . . . . . . 23 (𝜑 → (#‘𝐻) = 𝑁)
197196oveq2d 6565 . . . . . . . . . . . . . . . . . . . . . 22 (𝜑 → (0..^(#‘𝐻)) = (0..^𝑁))
198197ad3antrrr 762 . . . . . . . . . . . . . . . . . . . . 21 ((((𝜑𝑖 ∈ dom 𝐼) ∧ 𝑦 ∈ (0..^(#‘𝐹))) ∧ 𝑖 = (𝐹𝑦)) → (0..^(#‘𝐻)) = (0..^𝑁))
199 simpr 476 . . . . . . . . . . . . . . . . . . . . . 22 ((((𝜑𝑖 ∈ dom 𝐼) ∧ 𝑦 ∈ (0..^(#‘𝐹))) ∧ 𝑖 = (𝐹𝑦)) → 𝑖 = (𝐹𝑦))
2006fveq1i 6104 . . . . . . . . . . . . . . . . . . . . . . 23 (𝐻𝑧) = ((𝐹 cyclShift 𝑆)‘𝑧)
201200a1i 11 . . . . . . . . . . . . . . . . . . . . . 22 ((((𝜑𝑖 ∈ dom 𝐼) ∧ 𝑦 ∈ (0..^(#‘𝐹))) ∧ 𝑖 = (𝐹𝑦)) → (𝐻𝑧) = ((𝐹 cyclShift 𝑆)‘𝑧))
202199, 201eqeq12d 2625 . . . . . . . . . . . . . . . . . . . . 21 ((((𝜑𝑖 ∈ dom 𝐼) ∧ 𝑦 ∈ (0..^(#‘𝐹))) ∧ 𝑖 = (𝐹𝑦)) → (𝑖 = (𝐻𝑧) ↔ (𝐹𝑦) = ((𝐹 cyclShift 𝑆)‘𝑧)))
203198, 202rexeqbidv 3130 . . . . . . . . . . . . . . . . . . . 20 ((((𝜑𝑖 ∈ dom 𝐼) ∧ 𝑦 ∈ (0..^(#‘𝐹))) ∧ 𝑖 = (𝐹𝑦)) → (∃𝑧 ∈ (0..^(#‘𝐻))𝑖 = (𝐻𝑧) ↔ ∃𝑧 ∈ (0..^𝑁)(𝐹𝑦) = ((𝐹 cyclShift 𝑆)‘𝑧)))
204195, 203mpbird 246 . . . . . . . . . . . . . . . . . . 19 ((((𝜑𝑖 ∈ dom 𝐼) ∧ 𝑦 ∈ (0..^(#‘𝐹))) ∧ 𝑖 = (𝐹𝑦)) → ∃𝑧 ∈ (0..^(#‘𝐻))𝑖 = (𝐻𝑧))
205204ex 449 . . . . . . . . . . . . . . . . . 18 (((𝜑𝑖 ∈ dom 𝐼) ∧ 𝑦 ∈ (0..^(#‘𝐹))) → (𝑖 = (𝐹𝑦) → ∃𝑧 ∈ (0..^(#‘𝐻))𝑖 = (𝐻𝑧)))
206205rexlimdva 3013 . . . . . . . . . . . . . . . . 17 ((𝜑𝑖 ∈ dom 𝐼) → (∃𝑦 ∈ (0..^(#‘𝐹))𝑖 = (𝐹𝑦) → ∃𝑧 ∈ (0..^(#‘𝐻))𝑖 = (𝐻𝑧)))
207206ralimdva 2945 . . . . . . . . . . . . . . . 16 (𝜑 → (∀𝑖 ∈ dom 𝐼𝑦 ∈ (0..^(#‘𝐹))𝑖 = (𝐹𝑦) → ∀𝑖 ∈ dom 𝐼𝑧 ∈ (0..^(#‘𝐻))𝑖 = (𝐻𝑧)))
208207impcom 445 . . . . . . . . . . . . . . 15 ((∀𝑖 ∈ dom 𝐼𝑦 ∈ (0..^(#‘𝐹))𝑖 = (𝐹𝑦) ∧ 𝜑) → ∀𝑖 ∈ dom 𝐼𝑧 ∈ (0..^(#‘𝐻))𝑖 = (𝐻𝑧))
209208anim1i 590 . . . . . . . . . . . . . 14 (((∀𝑖 ∈ dom 𝐼𝑦 ∈ (0..^(#‘𝐹))𝑖 = (𝐹𝑦) ∧ 𝜑) ∧ 𝐻:(0..^(#‘𝐻))⟶dom 𝐼) → (∀𝑖 ∈ dom 𝐼𝑧 ∈ (0..^(#‘𝐻))𝑖 = (𝐻𝑧) ∧ 𝐻:(0..^(#‘𝐻))⟶dom 𝐼))
210209ancomd 466 . . . . . . . . . . . . 13 (((∀𝑖 ∈ dom 𝐼𝑦 ∈ (0..^(#‘𝐹))𝑖 = (𝐹𝑦) ∧ 𝜑) ∧ 𝐻:(0..^(#‘𝐻))⟶dom 𝐼) → (𝐻:(0..^(#‘𝐻))⟶dom 𝐼 ∧ ∀𝑖 ∈ dom 𝐼𝑧 ∈ (0..^(#‘𝐻))𝑖 = (𝐻𝑧)))
211 dffo3 6282 . . . . . . . . . . . . 13 (𝐻:(0..^(#‘𝐻))–onto→dom 𝐼 ↔ (𝐻:(0..^(#‘𝐻))⟶dom 𝐼 ∧ ∀𝑖 ∈ dom 𝐼𝑧 ∈ (0..^(#‘𝐻))𝑖 = (𝐻𝑧)))
212210, 211sylibr 223 . . . . . . . . . . . 12 (((∀𝑖 ∈ dom 𝐼𝑦 ∈ (0..^(#‘𝐹))𝑖 = (𝐹𝑦) ∧ 𝜑) ∧ 𝐻:(0..^(#‘𝐻))⟶dom 𝐼) → 𝐻:(0..^(#‘𝐻))–onto→dom 𝐼)
213212exp31 628 . . . . . . . . . . 11 (∀𝑖 ∈ dom 𝐼𝑦 ∈ (0..^(#‘𝐹))𝑖 = (𝐹𝑦) → (𝜑 → (𝐻:(0..^(#‘𝐻))⟶dom 𝐼𝐻:(0..^(#‘𝐻))–onto→dom 𝐼)))
21419, 213simplbiim 657 . . . . . . . . . 10 (𝐹:(0..^(#‘𝐹))–onto→dom 𝐼 → (𝜑 → (𝐻:(0..^(#‘𝐻))⟶dom 𝐼𝐻:(0..^(#‘𝐻))–onto→dom 𝐼)))
21518, 214simplbiim 657 . . . . . . . . 9 (𝐹:(0..^(#‘𝐹))–1-1-onto→dom 𝐼 → (𝜑 → (𝐻:(0..^(#‘𝐻))⟶dom 𝐼𝐻:(0..^(#‘𝐻))–onto→dom 𝐼)))
216215com13 86 . . . . . . . 8 (𝐻:(0..^(#‘𝐻))⟶dom 𝐼 → (𝜑 → (𝐹:(0..^(#‘𝐹))–1-1-onto→dom 𝐼𝐻:(0..^(#‘𝐻))–onto→dom 𝐼)))
21717, 216syl 17 . . . . . . 7 (𝐻(TrailS‘𝐺)𝑄 → (𝜑 → (𝐹:(0..^(#‘𝐹))–1-1-onto→dom 𝐼𝐻:(0..^(#‘𝐻))–onto→dom 𝐼)))
218217impcom 445 . . . . . 6 ((𝜑𝐻(TrailS‘𝐺)𝑄) → (𝐹:(0..^(#‘𝐹))–1-1-onto→dom 𝐼𝐻:(0..^(#‘𝐻))–onto→dom 𝐼))
21913, 218mpd 15 . . . . 5 ((𝜑𝐻(TrailS‘𝐺)𝑄) → 𝐻:(0..^(#‘𝐻))–onto→dom 𝐼)
2209, 219jca 553 . . . 4 ((𝜑𝐻(TrailS‘𝐺)𝑄) → (𝐻(TrailS‘𝐺)𝑄𝐻:(0..^(#‘𝐻))–onto→dom 𝐼))
2218, 220mpdan 699 . . 3 (𝜑 → (𝐻(TrailS‘𝐺)𝑄𝐻:(0..^(#‘𝐻))–onto→dom 𝐼))
2221, 2, 3, 4, 5, 6, 7crctcshlem3 41022 . . . 4 (𝜑 → (𝐺 ∈ V ∧ 𝐻 ∈ V ∧ 𝑄 ∈ V))
2232iseupth 41368 . . . 4 ((𝐺 ∈ V ∧ 𝐻 ∈ V ∧ 𝑄 ∈ V) → (𝐻(EulerPaths‘𝐺)𝑄 ↔ (𝐻(TrailS‘𝐺)𝑄𝐻:(0..^(#‘𝐻))–onto→dom 𝐼)))
224222, 223syl 17 . . 3 (𝜑 → (𝐻(EulerPaths‘𝐺)𝑄 ↔ (𝐻(TrailS‘𝐺)𝑄𝐻:(0..^(#‘𝐻))–onto→dom 𝐼)))
225221, 224mpbird 246 . 2 (𝜑𝐻(EulerPaths‘𝐺)𝑄)
2261, 2, 3, 4, 5, 6, 7crctcsh 41027 . 2 (𝜑𝐻(CircuitS‘𝐺)𝑄)
227225, 226jca 553 1 (𝜑 → (𝐻(EulerPaths‘𝐺)𝑄𝐻(CircuitS‘𝐺)𝑄))
Colors of variables: wff setvar class
Syntax hints:  ¬ wn 3  wi 4  wb 195  wa 383  w3a 1031   = wceq 1475  wcel 1977  wral 2896  wrex 2897  Vcvv 3173  ifcif 4036   class class class wbr 4583  cmpt 4643  dom cdm 5038  wf 5800  1-1wf1 5801  ontowfo 5802  1-1-ontowf1o 5803  cfv 5804  (class class class)co 6549  cc 9813  cr 9814  0cc0 9815   + caddc 9818   < clt 9953  cle 9954  cmin 10145  cn 10897  0cn0 11169  cz 11254  ...cfz 12197  ..^cfzo 12334   mod cmo 12530  #chash 12979  Word cword 13146   cyclShift ccsh 13385  Vtxcvtx 25673  iEdgciedg 25674  1Walksc1wlks 40796  TrailSctrls 40899  CircuitSccrcts 40990  EulerPathsceupth 41364
This theorem was proved from axioms:  ax-mp 5  ax-1 6  ax-2 7  ax-3 8  ax-gen 1713  ax-4 1728  ax-5 1827  ax-6 1875  ax-7 1922  ax-8 1979  ax-9 1986  ax-10 2006  ax-11 2021  ax-12 2034  ax-13 2234  ax-ext 2590  ax-rep 4699  ax-sep 4709  ax-nul 4717  ax-pow 4769  ax-pr 4833  ax-un 6847  ax-cnex 9871  ax-resscn 9872  ax-1cn 9873  ax-icn 9874  ax-addcl 9875  ax-addrcl 9876  ax-mulcl 9877  ax-mulrcl 9878  ax-mulcom 9879  ax-addass 9880  ax-mulass 9881  ax-distr 9882  ax-i2m1 9883  ax-1ne0 9884  ax-1rid 9885  ax-rnegex 9886  ax-rrecex 9887  ax-cnre 9888  ax-pre-lttri 9889  ax-pre-lttrn 9890  ax-pre-ltadd 9891  ax-pre-mulgt0 9892  ax-pre-sup 9893
This theorem depends on definitions:  df-bi 196  df-or 384  df-an 385  df-ifp 1007  df-3or 1032  df-3an 1033  df-tru 1478  df-ex 1696  df-nf 1701  df-sb 1868  df-eu 2462  df-mo 2463  df-clab 2597  df-cleq 2603  df-clel 2606  df-nfc 2740  df-ne 2782  df-nel 2783  df-ral 2901  df-rex 2902  df-reu 2903  df-rmo 2904  df-rab 2905  df-v 3175  df-sbc 3403  df-csb 3500  df-dif 3543  df-un 3545  df-in 3547  df-ss 3554  df-pss 3556  df-nul 3875  df-if 4037  df-pw 4110  df-sn 4126  df-pr 4128  df-tp 4130  df-op 4132  df-uni 4373  df-int 4411  df-iun 4457  df-br 4584  df-opab 4644  df-mpt 4645  df-tr 4681  df-eprel 4949  df-id 4953  df-po 4959  df-so 4960  df-fr 4997  df-we 4999  df-xp 5044  df-rel 5045  df-cnv 5046  df-co 5047  df-dm 5048  df-rn 5049  df-res 5050  df-ima 5051  df-pred 5597  df-ord 5643  df-on 5644  df-lim 5645  df-suc 5646  df-iota 5768  df-fun 5806  df-fn 5807  df-f 5808  df-f1 5809  df-fo 5810  df-f1o 5811  df-fv 5812  df-riota 6511  df-ov 6552  df-oprab 6553  df-mpt2 6554  df-om 6958  df-1st 7059  df-2nd 7060  df-wrecs 7294  df-recs 7355  df-rdg 7393  df-1o 7447  df-oadd 7451  df-er 7629  df-map 7746  df-pm 7747  df-en 7842  df-dom 7843  df-sdom 7844  df-fin 7845  df-sup 8231  df-inf 8232  df-card 8648  df-pnf 9955  df-mnf 9956  df-xr 9957  df-ltxr 9958  df-le 9959  df-sub 10147  df-neg 10148  df-div 10564  df-nn 10898  df-2 10956  df-n0 11170  df-z 11255  df-uz 11564  df-rp 11709  df-ico 12052  df-fz 12198  df-fzo 12335  df-fl 12455  df-mod 12531  df-hash 12980  df-word 13154  df-concat 13156  df-substr 13158  df-csh 13386  df-1wlks 40800  df-trls 40901  df-crcts 40992  df-eupth 41365
This theorem is referenced by:  eucrct2eupth  41413
  Copyright terms: Public domain W3C validator