MPE Home Metamath Proof Explorer < Previous   Next >
Nearby theorems
Mirrors  >  Home  >  MPE Home  >  Th. List  >  eucrctshift Structured version   Visualization version   GIF version

Theorem eucrctshift 26986
Description: Cyclically shifting the indices of an Eulerian circuit 𝐹, 𝑃 results in an Eulerian circuit 𝐻, 𝑄. (Contributed by AV, 15-Mar-2021.) (Proof shortened by AV, 30-Oct-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 26601 . . . 4 (𝜑𝐻(Trails‘𝐺)𝑄)
9 simpr 477 . . . . 5 ((𝜑𝐻(Trails‘𝐺)𝑄) → 𝐻(Trails‘𝐺)𝑄)
10 eucrctshift.e . . . . . . . 8 (𝜑𝐹(EulerPaths‘𝐺)𝑃)
112eupthf1o 26947 . . . . . . . 8 (𝐹(EulerPaths‘𝐺)𝑃𝐹:(0..^(#‘𝐹))–1-1-onto→dom 𝐼)
1210, 11syl 17 . . . . . . 7 (𝜑𝐹:(0..^(#‘𝐹))–1-1-onto→dom 𝐼)
1312adantr 481 . . . . . 6 ((𝜑𝐻(Trails‘𝐺)𝑄) → 𝐹:(0..^(#‘𝐹))–1-1-onto→dom 𝐼)
14 trliswlk 26480 . . . . . . . . 9 (𝐻(Trails‘𝐺)𝑄𝐻(Walks‘𝐺)𝑄)
152wlkf 26397 . . . . . . . . 9 (𝐻(Walks‘𝐺)𝑄𝐻 ∈ Word dom 𝐼)
16 wrdf 13257 . . . . . . . . 9 (𝐻 ∈ Word dom 𝐼𝐻:(0..^(#‘𝐻))⟶dom 𝐼)
1714, 15, 163syl 18 . . . . . . . 8 (𝐻(Trails‘𝐺)𝑄𝐻:(0..^(#‘𝐻))⟶dom 𝐼)
18 df-f1o 5859 . . . . . . . . . 10 (𝐹:(0..^(#‘𝐹))–1-1-onto→dom 𝐼 ↔ (𝐹:(0..^(#‘𝐹))–1-1→dom 𝐼𝐹:(0..^(#‘𝐹))–onto→dom 𝐼))
19 dffo3 6335 . . . . . . . . . . 11 (𝐹:(0..^(#‘𝐹))–onto→dom 𝐼 ↔ (𝐹:(0..^(#‘𝐹))⟶dom 𝐼 ∧ ∀𝑖 ∈ dom 𝐼𝑦 ∈ (0..^(#‘𝐹))𝑖 = (𝐹𝑦)))
20 crctiswlk 26577 . . . . . . . . . . . . . . . . . . . . . . . . . . 27 (𝐹(Circuits‘𝐺)𝑃𝐹(Walks‘𝐺)𝑃)
212wlkf 26397 . . . . . . . . . . . . . . . . . . . . . . . . . . 27 (𝐹(Walks‘𝐺)𝑃𝐹 ∈ Word dom 𝐼)
22 lencl 13271 . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 (𝐹 ∈ Word dom 𝐼 → (#‘𝐹) ∈ ℕ0)
234oveq2i 6621 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30 (0..^𝑁) = (0..^(#‘𝐹))
2423eleq2i 2690 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29 (𝑆 ∈ (0..^𝑁) ↔ 𝑆 ∈ (0..^(#‘𝐹)))
25 elfzonn0 12461 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37 (𝑆 ∈ (0..^(#‘𝐹)) → 𝑆 ∈ ℕ0)
2625adantl 482 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36 (((#‘𝐹) ∈ ℕ0𝑆 ∈ (0..^(#‘𝐹))) → 𝑆 ∈ ℕ0)
27 elfzonn0 12461 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36 (𝑦 ∈ (0..^(#‘𝐹)) → 𝑦 ∈ ℕ0)
28 nn0sub 11295 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36 ((𝑆 ∈ ℕ0𝑦 ∈ ℕ0) → (𝑆𝑦 ↔ (𝑦𝑆) ∈ ℕ0))
2926, 27, 28syl2an 494 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35 ((((#‘𝐹) ∈ ℕ0𝑆 ∈ (0..^(#‘𝐹))) ∧ 𝑦 ∈ (0..^(#‘𝐹))) → (𝑆𝑦 ↔ (𝑦𝑆) ∈ ℕ0))
3029biimpac 503 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34 ((𝑆𝑦 ∧ (((#‘𝐹) ∈ ℕ0𝑆 ∈ (0..^(#‘𝐹))) ∧ 𝑦 ∈ (0..^(#‘𝐹)))) → (𝑦𝑆) ∈ ℕ0)
31 elfzo0 12457 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36 (𝑦 ∈ (0..^(#‘𝐹)) ↔ (𝑦 ∈ ℕ0 ∧ (#‘𝐹) ∈ ℕ ∧ 𝑦 < (#‘𝐹)))
32 simp2 1060 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36 ((𝑦 ∈ ℕ0 ∧ (#‘𝐹) ∈ ℕ ∧ 𝑦 < (#‘𝐹)) → (#‘𝐹) ∈ ℕ)
3331, 32sylbi 207 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35 (𝑦 ∈ (0..^(#‘𝐹)) → (#‘𝐹) ∈ ℕ)
3433ad2antll 764 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34 ((𝑆𝑦 ∧ (((#‘𝐹) ∈ ℕ0𝑆 ∈ (0..^(#‘𝐹))) ∧ 𝑦 ∈ (0..^(#‘𝐹)))) → (#‘𝐹) ∈ ℕ)
35 nn0re 11253 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47 (𝑦 ∈ ℕ0𝑦 ∈ ℝ)
3635ad2antrr 761 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46 (((𝑦 ∈ ℕ0 ∧ (#‘𝐹) ∈ ℕ) ∧ 𝑆 ∈ (0..^(#‘𝐹))) → 𝑦 ∈ ℝ)
37 nnre 10979 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48 ((#‘𝐹) ∈ ℕ → (#‘𝐹) ∈ ℝ)
3837adantl 482 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47 ((𝑦 ∈ ℕ0 ∧ (#‘𝐹) ∈ ℕ) → (#‘𝐹) ∈ ℝ)
3938adantr 481 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46 (((𝑦 ∈ ℕ0 ∧ (#‘𝐹) ∈ ℕ) ∧ 𝑆 ∈ (0..^(#‘𝐹))) → (#‘𝐹) ∈ ℝ)
40 elfzoelz 12419 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48 (𝑆 ∈ (0..^(#‘𝐹)) → 𝑆 ∈ ℤ)
4140zred 11434 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47 (𝑆 ∈ (0..^(#‘𝐹)) → 𝑆 ∈ ℝ)
42 readdcl 9971 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47 (((#‘𝐹) ∈ ℝ ∧ 𝑆 ∈ ℝ) → ((#‘𝐹) + 𝑆) ∈ ℝ)
4338, 41, 42syl2an 494 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46 (((𝑦 ∈ ℕ0 ∧ (#‘𝐹) ∈ ℕ) ∧ 𝑆 ∈ (0..^(#‘𝐹))) → ((#‘𝐹) + 𝑆) ∈ ℝ)
4436, 39, 433jca 1240 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45 (((𝑦 ∈ ℕ0 ∧ (#‘𝐹) ∈ ℕ) ∧ 𝑆 ∈ (0..^(#‘𝐹))) → (𝑦 ∈ ℝ ∧ (#‘𝐹) ∈ ℝ ∧ ((#‘𝐹) + 𝑆) ∈ ℝ))
45 elfzole1 12427 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47 (𝑆 ∈ (0..^(#‘𝐹)) → 0 ≤ 𝑆)
4645adantl 482 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46 (((𝑦 ∈ ℕ0 ∧ (#‘𝐹) ∈ ℕ) ∧ 𝑆 ∈ (0..^(#‘𝐹))) → 0 ≤ 𝑆)
47 addge01 10490 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47 (((#‘𝐹) ∈ ℝ ∧ 𝑆 ∈ ℝ) → (0 ≤ 𝑆 ↔ (#‘𝐹) ≤ ((#‘𝐹) + 𝑆)))
4838, 41, 47syl2an 494 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46 (((𝑦 ∈ ℕ0 ∧ (#‘𝐹) ∈ ℕ) ∧ 𝑆 ∈ (0..^(#‘𝐹))) → (0 ≤ 𝑆 ↔ (#‘𝐹) ≤ ((#‘𝐹) + 𝑆)))
4946, 48mpbid 222 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45 (((𝑦 ∈ ℕ0 ∧ (#‘𝐹) ∈ ℕ) ∧ 𝑆 ∈ (0..^(#‘𝐹))) → (#‘𝐹) ≤ ((#‘𝐹) + 𝑆))
5044, 49lelttrdi 10151 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44 (((𝑦 ∈ ℕ0 ∧ (#‘𝐹) ∈ ℕ) ∧ 𝑆 ∈ (0..^(#‘𝐹))) → (𝑦 < (#‘𝐹) → 𝑦 < ((#‘𝐹) + 𝑆)))
5150ex 450 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43 ((𝑦 ∈ ℕ0 ∧ (#‘𝐹) ∈ ℕ) → (𝑆 ∈ (0..^(#‘𝐹)) → (𝑦 < (#‘𝐹) → 𝑦 < ((#‘𝐹) + 𝑆))))
5251com23 86 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42 ((𝑦 ∈ ℕ0 ∧ (#‘𝐹) ∈ ℕ) → (𝑦 < (#‘𝐹) → (𝑆 ∈ (0..^(#‘𝐹)) → 𝑦 < ((#‘𝐹) + 𝑆))))
53523impia 1258 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41 ((𝑦 ∈ ℕ0 ∧ (#‘𝐹) ∈ ℕ ∧ 𝑦 < (#‘𝐹)) → (𝑆 ∈ (0..^(#‘𝐹)) → 𝑦 < ((#‘𝐹) + 𝑆)))
5453adantld 483 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40 ((𝑦 ∈ ℕ0 ∧ (#‘𝐹) ∈ ℕ ∧ 𝑦 < (#‘𝐹)) → (((#‘𝐹) ∈ ℕ0𝑆 ∈ (0..^(#‘𝐹))) → 𝑦 < ((#‘𝐹) + 𝑆)))
5554imp 445 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39 (((𝑦 ∈ ℕ0 ∧ (#‘𝐹) ∈ ℕ ∧ 𝑦 < (#‘𝐹)) ∧ ((#‘𝐹) ∈ ℕ0𝑆 ∈ (0..^(#‘𝐹)))) → 𝑦 < ((#‘𝐹) + 𝑆))
56353ad2ant1 1080 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41 ((𝑦 ∈ ℕ0 ∧ (#‘𝐹) ∈ ℕ ∧ 𝑦 < (#‘𝐹)) → 𝑦 ∈ ℝ)
5756adantr 481 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40 (((𝑦 ∈ ℕ0 ∧ (#‘𝐹) ∈ ℕ ∧ 𝑦 < (#‘𝐹)) ∧ ((#‘𝐹) ∈ ℕ0𝑆 ∈ (0..^(#‘𝐹)))) → 𝑦 ∈ ℝ)
5841ad2antll 764 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40 (((𝑦 ∈ ℕ0 ∧ (#‘𝐹) ∈ ℕ ∧ 𝑦 < (#‘𝐹)) ∧ ((#‘𝐹) ∈ ℕ0𝑆 ∈ (0..^(#‘𝐹)))) → 𝑆 ∈ ℝ)
59 elfzoel2 12418 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42 (𝑆 ∈ (0..^(#‘𝐹)) → (#‘𝐹) ∈ ℤ)
6059zred 11434 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41 (𝑆 ∈ (0..^(#‘𝐹)) → (#‘𝐹) ∈ ℝ)
6160ad2antll 764 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40 (((𝑦 ∈ ℕ0 ∧ (#‘𝐹) ∈ ℕ ∧ 𝑦 < (#‘𝐹)) ∧ ((#‘𝐹) ∈ ℕ0𝑆 ∈ (0..^(#‘𝐹)))) → (#‘𝐹) ∈ ℝ)
6257, 58, 61ltsubaddd 10575 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39 (((𝑦 ∈ ℕ0 ∧ (#‘𝐹) ∈ ℕ ∧ 𝑦 < (#‘𝐹)) ∧ ((#‘𝐹) ∈ ℕ0𝑆 ∈ (0..^(#‘𝐹)))) → ((𝑦𝑆) < (#‘𝐹) ↔ 𝑦 < ((#‘𝐹) + 𝑆)))
6355, 62mpbird 247 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38 (((𝑦 ∈ ℕ0 ∧ (#‘𝐹) ∈ ℕ ∧ 𝑦 < (#‘𝐹)) ∧ ((#‘𝐹) ∈ ℕ0𝑆 ∈ (0..^(#‘𝐹)))) → (𝑦𝑆) < (#‘𝐹))
6463ex 450 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37 ((𝑦 ∈ ℕ0 ∧ (#‘𝐹) ∈ ℕ ∧ 𝑦 < (#‘𝐹)) → (((#‘𝐹) ∈ ℕ0𝑆 ∈ (0..^(#‘𝐹))) → (𝑦𝑆) < (#‘𝐹)))
6531, 64sylbi 207 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36 (𝑦 ∈ (0..^(#‘𝐹)) → (((#‘𝐹) ∈ ℕ0𝑆 ∈ (0..^(#‘𝐹))) → (𝑦𝑆) < (#‘𝐹)))
6665impcom 446 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35 ((((#‘𝐹) ∈ ℕ0𝑆 ∈ (0..^(#‘𝐹))) ∧ 𝑦 ∈ (0..^(#‘𝐹))) → (𝑦𝑆) < (#‘𝐹))
6766adantl 482 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34 ((𝑆𝑦 ∧ (((#‘𝐹) ∈ ℕ0𝑆 ∈ (0..^(#‘𝐹))) ∧ 𝑦 ∈ (0..^(#‘𝐹)))) → (𝑦𝑆) < (#‘𝐹))
68 elfzo0 12457 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34 ((𝑦𝑆) ∈ (0..^(#‘𝐹)) ↔ ((𝑦𝑆) ∈ ℕ0 ∧ (#‘𝐹) ∈ ℕ ∧ (𝑦𝑆) < (#‘𝐹)))
6930, 34, 67, 68syl3anbrc 1244 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33 ((𝑆𝑦 ∧ (((#‘𝐹) ∈ ℕ0𝑆 ∈ (0..^(#‘𝐹))) ∧ 𝑦 ∈ (0..^(#‘𝐹)))) → (𝑦𝑆) ∈ (0..^(#‘𝐹)))
70 oveq1 6617 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36 (𝑧 = (𝑦𝑆) → (𝑧 + 𝑆) = ((𝑦𝑆) + 𝑆))
7170oveq1d 6625 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35 (𝑧 = (𝑦𝑆) → ((𝑧 + 𝑆) mod (#‘𝐹)) = (((𝑦𝑆) + 𝑆) mod (#‘𝐹)))
7240zcnd 11435 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41 (𝑆 ∈ (0..^(#‘𝐹)) → 𝑆 ∈ ℂ)
7372adantl 482 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40 (((#‘𝐹) ∈ ℕ0𝑆 ∈ (0..^(#‘𝐹))) → 𝑆 ∈ ℂ)
74 elfzoelz 12419 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41 (𝑦 ∈ (0..^(#‘𝐹)) → 𝑦 ∈ ℤ)
7574zcnd 11435 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40 (𝑦 ∈ (0..^(#‘𝐹)) → 𝑦 ∈ ℂ)
7673, 75anim12ci 590 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39 ((((#‘𝐹) ∈ ℕ0𝑆 ∈ (0..^(#‘𝐹))) ∧ 𝑦 ∈ (0..^(#‘𝐹))) → (𝑦 ∈ ℂ ∧ 𝑆 ∈ ℂ))
7776adantl 482 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38 ((𝑆𝑦 ∧ (((#‘𝐹) ∈ ℕ0𝑆 ∈ (0..^(#‘𝐹))) ∧ 𝑦 ∈ (0..^(#‘𝐹)))) → (𝑦 ∈ ℂ ∧ 𝑆 ∈ ℂ))
78 npcan 10242 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38 ((𝑦 ∈ ℂ ∧ 𝑆 ∈ ℂ) → ((𝑦𝑆) + 𝑆) = 𝑦)
7977, 78syl 17 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37 ((𝑆𝑦 ∧ (((#‘𝐹) ∈ ℕ0𝑆 ∈ (0..^(#‘𝐹))) ∧ 𝑦 ∈ (0..^(#‘𝐹)))) → ((𝑦𝑆) + 𝑆) = 𝑦)
8079oveq1d 6625 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36 ((𝑆𝑦 ∧ (((#‘𝐹) ∈ ℕ0𝑆 ∈ (0..^(#‘𝐹))) ∧ 𝑦 ∈ (0..^(#‘𝐹)))) → (((𝑦𝑆) + 𝑆) mod (#‘𝐹)) = (𝑦 mod (#‘𝐹)))
81 zmodidfzoimp 12648 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37 (𝑦 ∈ (0..^(#‘𝐹)) → (𝑦 mod (#‘𝐹)) = 𝑦)
8281ad2antll 764 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36 ((𝑆𝑦 ∧ (((#‘𝐹) ∈ ℕ0𝑆 ∈ (0..^(#‘𝐹))) ∧ 𝑦 ∈ (0..^(#‘𝐹)))) → (𝑦 mod (#‘𝐹)) = 𝑦)
8380, 82eqtrd 2655 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35 ((𝑆𝑦 ∧ (((#‘𝐹) ∈ ℕ0𝑆 ∈ (0..^(#‘𝐹))) ∧ 𝑦 ∈ (0..^(#‘𝐹)))) → (((𝑦𝑆) + 𝑆) mod (#‘𝐹)) = 𝑦)
8471, 83sylan9eqr 2677 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34 (((𝑆𝑦 ∧ (((#‘𝐹) ∈ ℕ0𝑆 ∈ (0..^(#‘𝐹))) ∧ 𝑦 ∈ (0..^(#‘𝐹)))) ∧ 𝑧 = (𝑦𝑆)) → ((𝑧 + 𝑆) mod (#‘𝐹)) = 𝑦)
8584eqcomd 2627 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33 (((𝑆𝑦 ∧ (((#‘𝐹) ∈ ℕ0𝑆 ∈ (0..^(#‘𝐹))) ∧ 𝑦 ∈ (0..^(#‘𝐹)))) ∧ 𝑧 = (𝑦𝑆)) → 𝑦 = ((𝑧 + 𝑆) mod (#‘𝐹)))
8669, 85rspcedeq2vd 3307 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32 ((𝑆𝑦 ∧ (((#‘𝐹) ∈ ℕ0𝑆 ∈ (0..^(#‘𝐹))) ∧ 𝑦 ∈ (0..^(#‘𝐹)))) → ∃𝑧 ∈ (0..^(#‘𝐹))𝑦 = ((𝑧 + 𝑆) mod (#‘𝐹)))
87 elfzo0 12457 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39 (𝑆 ∈ (0..^(#‘𝐹)) ↔ (𝑆 ∈ ℕ0 ∧ (#‘𝐹) ∈ ℕ ∧ 𝑆 < (#‘𝐹)))
88 nn0cn 11254 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46 (𝑦 ∈ ℕ0𝑦 ∈ ℂ)
8988ad2antrr 761 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45 (((𝑦 ∈ ℕ0𝑦 < (#‘𝐹)) ∧ (𝑆 ∈ ℕ0 ∧ (#‘𝐹) ∈ ℕ ∧ 𝑆 < (#‘𝐹))) → 𝑦 ∈ ℂ)
90 nn0cn 11254 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47 (𝑆 ∈ ℕ0𝑆 ∈ ℂ)
91903ad2ant1 1080 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46 ((𝑆 ∈ ℕ0 ∧ (#‘𝐹) ∈ ℕ ∧ 𝑆 < (#‘𝐹)) → 𝑆 ∈ ℂ)
9291adantl 482 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45 (((𝑦 ∈ ℕ0𝑦 < (#‘𝐹)) ∧ (𝑆 ∈ ℕ0 ∧ (#‘𝐹) ∈ ℕ ∧ 𝑆 < (#‘𝐹))) → 𝑆 ∈ ℂ)
93 nncn 10980 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47 ((#‘𝐹) ∈ ℕ → (#‘𝐹) ∈ ℂ)
94933ad2ant2 1081 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46 ((𝑆 ∈ ℕ0 ∧ (#‘𝐹) ∈ ℕ ∧ 𝑆 < (#‘𝐹)) → (#‘𝐹) ∈ ℂ)
9594adantl 482 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45 (((𝑦 ∈ ℕ0𝑦 < (#‘𝐹)) ∧ (𝑆 ∈ ℕ0 ∧ (#‘𝐹) ∈ ℕ ∧ 𝑆 < (#‘𝐹))) → (#‘𝐹) ∈ ℂ)
9689, 92, 95subadd23d 10366 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44 (((𝑦 ∈ ℕ0𝑦 < (#‘𝐹)) ∧ (𝑆 ∈ ℕ0 ∧ (#‘𝐹) ∈ ℕ ∧ 𝑆 < (#‘𝐹))) → ((𝑦𝑆) + (#‘𝐹)) = (𝑦 + ((#‘𝐹) − 𝑆)))
97 simpll 789 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45 (((𝑦 ∈ ℕ0𝑦 < (#‘𝐹)) ∧ (𝑆 ∈ ℕ0 ∧ (#‘𝐹) ∈ ℕ ∧ 𝑆 < (#‘𝐹))) → 𝑦 ∈ ℕ0)
98 nn0z 11352 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49 (𝑆 ∈ ℕ0𝑆 ∈ ℤ)
99 nnz 11351 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49 ((#‘𝐹) ∈ ℕ → (#‘𝐹) ∈ ℤ)
100 znnsub 11375 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49 ((𝑆 ∈ ℤ ∧ (#‘𝐹) ∈ ℤ) → (𝑆 < (#‘𝐹) ↔ ((#‘𝐹) − 𝑆) ∈ ℕ))
10198, 99, 100syl2an 494 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48 ((𝑆 ∈ ℕ0 ∧ (#‘𝐹) ∈ ℕ) → (𝑆 < (#‘𝐹) ↔ ((#‘𝐹) − 𝑆) ∈ ℕ))
102101biimp3a 1429 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47 ((𝑆 ∈ ℕ0 ∧ (#‘𝐹) ∈ ℕ ∧ 𝑆 < (#‘𝐹)) → ((#‘𝐹) − 𝑆) ∈ ℕ)
103102adantl 482 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46 (((𝑦 ∈ ℕ0𝑦 < (#‘𝐹)) ∧ (𝑆 ∈ ℕ0 ∧ (#‘𝐹) ∈ ℕ ∧ 𝑆 < (#‘𝐹))) → ((#‘𝐹) − 𝑆) ∈ ℕ)
104103nnnn0d 11303 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45 (((𝑦 ∈ ℕ0𝑦 < (#‘𝐹)) ∧ (𝑆 ∈ ℕ0 ∧ (#‘𝐹) ∈ ℕ ∧ 𝑆 < (#‘𝐹))) → ((#‘𝐹) − 𝑆) ∈ ℕ0)
10597, 104nn0addcld 11307 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44 (((𝑦 ∈ ℕ0𝑦 < (#‘𝐹)) ∧ (𝑆 ∈ ℕ0 ∧ (#‘𝐹) ∈ ℕ ∧ 𝑆 < (#‘𝐹))) → (𝑦 + ((#‘𝐹) − 𝑆)) ∈ ℕ0)
10696, 105eqeltrd 2698 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43 (((𝑦 ∈ ℕ0𝑦 < (#‘𝐹)) ∧ (𝑆 ∈ ℕ0 ∧ (#‘𝐹) ∈ ℕ ∧ 𝑆 < (#‘𝐹))) → ((𝑦𝑆) + (#‘𝐹)) ∈ ℕ0)
107106adantr 481 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42 ((((𝑦 ∈ ℕ0𝑦 < (#‘𝐹)) ∧ (𝑆 ∈ ℕ0 ∧ (#‘𝐹) ∈ ℕ ∧ 𝑆 < (#‘𝐹))) ∧ ¬ 𝑆𝑦) → ((𝑦𝑆) + (#‘𝐹)) ∈ ℕ0)
108 simplr2 1102 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42 ((((𝑦 ∈ ℕ0𝑦 < (#‘𝐹)) ∧ (𝑆 ∈ ℕ0 ∧ (#‘𝐹) ∈ ℕ ∧ 𝑆 < (#‘𝐹))) ∧ ¬ 𝑆𝑦) → (#‘𝐹) ∈ ℕ)
10988adantr 481 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47 ((𝑦 ∈ ℕ0𝑦 < (#‘𝐹)) → 𝑦 ∈ ℂ)
110 subcl 10232 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47 ((𝑦 ∈ ℂ ∧ 𝑆 ∈ ℂ) → (𝑦𝑆) ∈ ℂ)
111109, 91, 110syl2an 494 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46 (((𝑦 ∈ ℕ0𝑦 < (#‘𝐹)) ∧ (𝑆 ∈ ℕ0 ∧ (#‘𝐹) ∈ ℕ ∧ 𝑆 < (#‘𝐹))) → (𝑦𝑆) ∈ ℂ)
11295, 111jca 554 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45 (((𝑦 ∈ ℕ0𝑦 < (#‘𝐹)) ∧ (𝑆 ∈ ℕ0 ∧ (#‘𝐹) ∈ ℕ ∧ 𝑆 < (#‘𝐹))) → ((#‘𝐹) ∈ ℂ ∧ (𝑦𝑆) ∈ ℂ))
113112adantr 481 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44 ((((𝑦 ∈ ℕ0𝑦 < (#‘𝐹)) ∧ (𝑆 ∈ ℕ0 ∧ (#‘𝐹) ∈ ℕ ∧ 𝑆 < (#‘𝐹))) ∧ ¬ 𝑆𝑦) → ((#‘𝐹) ∈ ℂ ∧ (𝑦𝑆) ∈ ℂ))
114 addcom 10174 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44 (((#‘𝐹) ∈ ℂ ∧ (𝑦𝑆) ∈ ℂ) → ((#‘𝐹) + (𝑦𝑆)) = ((𝑦𝑆) + (#‘𝐹)))
115113, 114syl 17 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43 ((((𝑦 ∈ ℕ0𝑦 < (#‘𝐹)) ∧ (𝑆 ∈ ℕ0 ∧ (#‘𝐹) ∈ ℕ ∧ 𝑆 < (#‘𝐹))) ∧ ¬ 𝑆𝑦) → ((#‘𝐹) + (𝑦𝑆)) = ((𝑦𝑆) + (#‘𝐹)))
11635adantr 481 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46 ((𝑦 ∈ ℕ0𝑦 < (#‘𝐹)) → 𝑦 ∈ ℝ)
117 nn0re 11253 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47 (𝑆 ∈ ℕ0𝑆 ∈ ℝ)
1181173ad2ant1 1080 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46 ((𝑆 ∈ ℕ0 ∧ (#‘𝐹) ∈ ℕ ∧ 𝑆 < (#‘𝐹)) → 𝑆 ∈ ℝ)
119 ltnle 10069 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47 ((𝑦 ∈ ℝ ∧ 𝑆 ∈ ℝ) → (𝑦 < 𝑆 ↔ ¬ 𝑆𝑦))
120 simpl 473 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49 ((𝑦 ∈ ℝ ∧ 𝑆 ∈ ℝ) → 𝑦 ∈ ℝ)
121 simpr 477 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49 ((𝑦 ∈ ℝ ∧ 𝑆 ∈ ℝ) → 𝑆 ∈ ℝ)
122120, 121sublt0d 10605 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48 ((𝑦 ∈ ℝ ∧ 𝑆 ∈ ℝ) → ((𝑦𝑆) < 0 ↔ 𝑦 < 𝑆))
123122biimprd 238 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47 ((𝑦 ∈ ℝ ∧ 𝑆 ∈ ℝ) → (𝑦 < 𝑆 → (𝑦𝑆) < 0))
124119, 123sylbird 250 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46 ((𝑦 ∈ ℝ ∧ 𝑆 ∈ ℝ) → (¬ 𝑆𝑦 → (𝑦𝑆) < 0))
125116, 118, 124syl2an 494 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45 (((𝑦 ∈ ℕ0𝑦 < (#‘𝐹)) ∧ (𝑆 ∈ ℕ0 ∧ (#‘𝐹) ∈ ℕ ∧ 𝑆 < (#‘𝐹))) → (¬ 𝑆𝑦 → (𝑦𝑆) < 0))
126125imp 445 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44 ((((𝑦 ∈ ℕ0𝑦 < (#‘𝐹)) ∧ (𝑆 ∈ ℕ0 ∧ (#‘𝐹) ∈ ℕ ∧ 𝑆 < (#‘𝐹))) ∧ ¬ 𝑆𝑦) → (𝑦𝑆) < 0)
127 resubcl 10297 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48 ((𝑦 ∈ ℝ ∧ 𝑆 ∈ ℝ) → (𝑦𝑆) ∈ ℝ)
128116, 118, 127syl2an 494 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47 (((𝑦 ∈ ℕ0𝑦 < (#‘𝐹)) ∧ (𝑆 ∈ ℕ0 ∧ (#‘𝐹) ∈ ℕ ∧ 𝑆 < (#‘𝐹))) → (𝑦𝑆) ∈ ℝ)
129373ad2ant2 1081 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48 ((𝑆 ∈ ℕ0 ∧ (#‘𝐹) ∈ ℕ ∧ 𝑆 < (#‘𝐹)) → (#‘𝐹) ∈ ℝ)
130129adantl 482 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47 (((𝑦 ∈ ℕ0𝑦 < (#‘𝐹)) ∧ (𝑆 ∈ ℕ0 ∧ (#‘𝐹) ∈ ℕ ∧ 𝑆 < (#‘𝐹))) → (#‘𝐹) ∈ ℝ)
131128, 130jca 554 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46 (((𝑦 ∈ ℕ0𝑦 < (#‘𝐹)) ∧ (𝑆 ∈ ℕ0 ∧ (#‘𝐹) ∈ ℕ ∧ 𝑆 < (#‘𝐹))) → ((𝑦𝑆) ∈ ℝ ∧ (#‘𝐹) ∈ ℝ))
132131adantr 481 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45 ((((𝑦 ∈ ℕ0𝑦 < (#‘𝐹)) ∧ (𝑆 ∈ ℕ0 ∧ (#‘𝐹) ∈ ℕ ∧ 𝑆 < (#‘𝐹))) ∧ ¬ 𝑆𝑦) → ((𝑦𝑆) ∈ ℝ ∧ (#‘𝐹) ∈ ℝ))
133 ltaddneg 10203 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45 (((𝑦𝑆) ∈ ℝ ∧ (#‘𝐹) ∈ ℝ) → ((𝑦𝑆) < 0 ↔ ((#‘𝐹) + (𝑦𝑆)) < (#‘𝐹)))
134132, 133syl 17 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44 ((((𝑦 ∈ ℕ0𝑦 < (#‘𝐹)) ∧ (𝑆 ∈ ℕ0 ∧ (#‘𝐹) ∈ ℕ ∧ 𝑆 < (#‘𝐹))) ∧ ¬ 𝑆𝑦) → ((𝑦𝑆) < 0 ↔ ((#‘𝐹) + (𝑦𝑆)) < (#‘𝐹)))
135126, 134mpbid 222 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43 ((((𝑦 ∈ ℕ0𝑦 < (#‘𝐹)) ∧ (𝑆 ∈ ℕ0 ∧ (#‘𝐹) ∈ ℕ ∧ 𝑆 < (#‘𝐹))) ∧ ¬ 𝑆𝑦) → ((#‘𝐹) + (𝑦𝑆)) < (#‘𝐹))
136115, 135eqbrtrrd 4642 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42 ((((𝑦 ∈ ℕ0𝑦 < (#‘𝐹)) ∧ (𝑆 ∈ ℕ0 ∧ (#‘𝐹) ∈ ℕ ∧ 𝑆 < (#‘𝐹))) ∧ ¬ 𝑆𝑦) → ((𝑦𝑆) + (#‘𝐹)) < (#‘𝐹))
137107, 108, 1363jca 1240 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41 ((((𝑦 ∈ ℕ0𝑦 < (#‘𝐹)) ∧ (𝑆 ∈ ℕ0 ∧ (#‘𝐹) ∈ ℕ ∧ 𝑆 < (#‘𝐹))) ∧ ¬ 𝑆𝑦) → (((𝑦𝑆) + (#‘𝐹)) ∈ ℕ0 ∧ (#‘𝐹) ∈ ℕ ∧ ((𝑦𝑆) + (#‘𝐹)) < (#‘𝐹)))
138137exp31 629 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40 ((𝑦 ∈ ℕ0𝑦 < (#‘𝐹)) → ((𝑆 ∈ ℕ0 ∧ (#‘𝐹) ∈ ℕ ∧ 𝑆 < (#‘𝐹)) → (¬ 𝑆𝑦 → (((𝑦𝑆) + (#‘𝐹)) ∈ ℕ0 ∧ (#‘𝐹) ∈ ℕ ∧ ((𝑦𝑆) + (#‘𝐹)) < (#‘𝐹)))))
1391383adant2 1078 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39 ((𝑦 ∈ ℕ0 ∧ (#‘𝐹) ∈ ℕ ∧ 𝑦 < (#‘𝐹)) → ((𝑆 ∈ ℕ0 ∧ (#‘𝐹) ∈ ℕ ∧ 𝑆 < (#‘𝐹)) → (¬ 𝑆𝑦 → (((𝑦𝑆) + (#‘𝐹)) ∈ ℕ0 ∧ (#‘𝐹) ∈ ℕ ∧ ((𝑦𝑆) + (#‘𝐹)) < (#‘𝐹)))))
14087, 139syl5bi 232 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38 ((𝑦 ∈ ℕ0 ∧ (#‘𝐹) ∈ ℕ ∧ 𝑦 < (#‘𝐹)) → (𝑆 ∈ (0..^(#‘𝐹)) → (¬ 𝑆𝑦 → (((𝑦𝑆) + (#‘𝐹)) ∈ ℕ0 ∧ (#‘𝐹) ∈ ℕ ∧ ((𝑦𝑆) + (#‘𝐹)) < (#‘𝐹)))))
141140adantld 483 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37 ((𝑦 ∈ ℕ0 ∧ (#‘𝐹) ∈ ℕ ∧ 𝑦 < (#‘𝐹)) → (((#‘𝐹) ∈ ℕ0𝑆 ∈ (0..^(#‘𝐹))) → (¬ 𝑆𝑦 → (((𝑦𝑆) + (#‘𝐹)) ∈ ℕ0 ∧ (#‘𝐹) ∈ ℕ ∧ ((𝑦𝑆) + (#‘𝐹)) < (#‘𝐹)))))
14231, 141sylbi 207 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36 (𝑦 ∈ (0..^(#‘𝐹)) → (((#‘𝐹) ∈ ℕ0𝑆 ∈ (0..^(#‘𝐹))) → (¬ 𝑆𝑦 → (((𝑦𝑆) + (#‘𝐹)) ∈ ℕ0 ∧ (#‘𝐹) ∈ ℕ ∧ ((𝑦𝑆) + (#‘𝐹)) < (#‘𝐹)))))
143142impcom 446 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35 ((((#‘𝐹) ∈ ℕ0𝑆 ∈ (0..^(#‘𝐹))) ∧ 𝑦 ∈ (0..^(#‘𝐹))) → (¬ 𝑆𝑦 → (((𝑦𝑆) + (#‘𝐹)) ∈ ℕ0 ∧ (#‘𝐹) ∈ ℕ ∧ ((𝑦𝑆) + (#‘𝐹)) < (#‘𝐹))))
144143impcom 446 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34 ((¬ 𝑆𝑦 ∧ (((#‘𝐹) ∈ ℕ0𝑆 ∈ (0..^(#‘𝐹))) ∧ 𝑦 ∈ (0..^(#‘𝐹)))) → (((𝑦𝑆) + (#‘𝐹)) ∈ ℕ0 ∧ (#‘𝐹) ∈ ℕ ∧ ((𝑦𝑆) + (#‘𝐹)) < (#‘𝐹)))
145 elfzo0 12457 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34 (((𝑦𝑆) + (#‘𝐹)) ∈ (0..^(#‘𝐹)) ↔ (((𝑦𝑆) + (#‘𝐹)) ∈ ℕ0 ∧ (#‘𝐹) ∈ ℕ ∧ ((𝑦𝑆) + (#‘𝐹)) < (#‘𝐹)))
146144, 145sylibr 224 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33 ((¬ 𝑆𝑦 ∧ (((#‘𝐹) ∈ ℕ0𝑆 ∈ (0..^(#‘𝐹))) ∧ 𝑦 ∈ (0..^(#‘𝐹)))) → ((𝑦𝑆) + (#‘𝐹)) ∈ (0..^(#‘𝐹)))
147 oveq1 6617 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36 (𝑧 = ((𝑦𝑆) + (#‘𝐹)) → (𝑧 + 𝑆) = (((𝑦𝑆) + (#‘𝐹)) + 𝑆))
148147oveq1d 6625 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35 (𝑧 = ((𝑦𝑆) + (#‘𝐹)) → ((𝑧 + 𝑆) mod (#‘𝐹)) = ((((𝑦𝑆) + (#‘𝐹)) + 𝑆) mod (#‘𝐹)))
14973adantr 481 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40 ((((#‘𝐹) ∈ ℕ0𝑆 ∈ (0..^(#‘𝐹))) ∧ 𝑦 ∈ (0..^(#‘𝐹))) → 𝑆 ∈ ℂ)
15075adantl 482 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40 ((((#‘𝐹) ∈ ℕ0𝑆 ∈ (0..^(#‘𝐹))) ∧ 𝑦 ∈ (0..^(#‘𝐹))) → 𝑦 ∈ ℂ)
151 nn0cn 11254 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41 ((#‘𝐹) ∈ ℕ0 → (#‘𝐹) ∈ ℂ)
152151ad2antrr 761 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40 ((((#‘𝐹) ∈ ℕ0𝑆 ∈ (0..^(#‘𝐹))) ∧ 𝑦 ∈ (0..^(#‘𝐹))) → (#‘𝐹) ∈ ℂ)
153149, 150, 1523jca 1240 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39 ((((#‘𝐹) ∈ ℕ0𝑆 ∈ (0..^(#‘𝐹))) ∧ 𝑦 ∈ (0..^(#‘𝐹))) → (𝑆 ∈ ℂ ∧ 𝑦 ∈ ℂ ∧ (#‘𝐹) ∈ ℂ))
154153adantl 482 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38 ((¬ 𝑆𝑦 ∧ (((#‘𝐹) ∈ ℕ0𝑆 ∈ (0..^(#‘𝐹))) ∧ 𝑦 ∈ (0..^(#‘𝐹)))) → (𝑆 ∈ ℂ ∧ 𝑦 ∈ ℂ ∧ (#‘𝐹) ∈ ℂ))
155 simp2 1060 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39 ((𝑆 ∈ ℂ ∧ 𝑦 ∈ ℂ ∧ (#‘𝐹) ∈ ℂ) → 𝑦 ∈ ℂ)
156 simp3 1061 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39 ((𝑆 ∈ ℂ ∧ 𝑦 ∈ ℂ ∧ (#‘𝐹) ∈ ℂ) → (#‘𝐹) ∈ ℂ)
157 simp1 1059 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40 ((𝑆 ∈ ℂ ∧ 𝑦 ∈ ℂ ∧ (#‘𝐹) ∈ ℂ) → 𝑆 ∈ ℂ)
158155, 157, 156nppcand 10369 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39 ((𝑆 ∈ ℂ ∧ 𝑦 ∈ ℂ ∧ (#‘𝐹) ∈ ℂ) → (((𝑦𝑆) + (#‘𝐹)) + 𝑆) = (𝑦 + (#‘𝐹)))
159155, 156, 158comraddd 10202 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38 ((𝑆 ∈ ℂ ∧ 𝑦 ∈ ℂ ∧ (#‘𝐹) ∈ ℂ) → (((𝑦𝑆) + (#‘𝐹)) + 𝑆) = ((#‘𝐹) + 𝑦))
160154, 159syl 17 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37 ((¬ 𝑆𝑦 ∧ (((#‘𝐹) ∈ ℕ0𝑆 ∈ (0..^(#‘𝐹))) ∧ 𝑦 ∈ (0..^(#‘𝐹)))) → (((𝑦𝑆) + (#‘𝐹)) + 𝑆) = ((#‘𝐹) + 𝑦))
161160oveq1d 6625 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36 ((¬ 𝑆𝑦 ∧ (((#‘𝐹) ∈ ℕ0𝑆 ∈ (0..^(#‘𝐹))) ∧ 𝑦 ∈ (0..^(#‘𝐹)))) → ((((𝑦𝑆) + (#‘𝐹)) + 𝑆) mod (#‘𝐹)) = (((#‘𝐹) + 𝑦) mod (#‘𝐹)))
16231biimpi 206 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38 (𝑦 ∈ (0..^(#‘𝐹)) → (𝑦 ∈ ℕ0 ∧ (#‘𝐹) ∈ ℕ ∧ 𝑦 < (#‘𝐹)))
163162ad2antll 764 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37 ((¬ 𝑆𝑦 ∧ (((#‘𝐹) ∈ ℕ0𝑆 ∈ (0..^(#‘𝐹))) ∧ 𝑦 ∈ (0..^(#‘𝐹)))) → (𝑦 ∈ ℕ0 ∧ (#‘𝐹) ∈ ℕ ∧ 𝑦 < (#‘𝐹)))
164 addmodid 12666 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37 ((𝑦 ∈ ℕ0 ∧ (#‘𝐹) ∈ ℕ ∧ 𝑦 < (#‘𝐹)) → (((#‘𝐹) + 𝑦) mod (#‘𝐹)) = 𝑦)
165163, 164syl 17 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36 ((¬ 𝑆𝑦 ∧ (((#‘𝐹) ∈ ℕ0𝑆 ∈ (0..^(#‘𝐹))) ∧ 𝑦 ∈ (0..^(#‘𝐹)))) → (((#‘𝐹) + 𝑦) mod (#‘𝐹)) = 𝑦)
166161, 165eqtrd 2655 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35 ((¬ 𝑆𝑦 ∧ (((#‘𝐹) ∈ ℕ0𝑆 ∈ (0..^(#‘𝐹))) ∧ 𝑦 ∈ (0..^(#‘𝐹)))) → ((((𝑦𝑆) + (#‘𝐹)) + 𝑆) mod (#‘𝐹)) = 𝑦)
167148, 166sylan9eqr 2677 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34 (((¬ 𝑆𝑦 ∧ (((#‘𝐹) ∈ ℕ0𝑆 ∈ (0..^(#‘𝐹))) ∧ 𝑦 ∈ (0..^(#‘𝐹)))) ∧ 𝑧 = ((𝑦𝑆) + (#‘𝐹))) → ((𝑧 + 𝑆) mod (#‘𝐹)) = 𝑦)
168167eqcomd 2627 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33 (((¬ 𝑆𝑦 ∧ (((#‘𝐹) ∈ ℕ0𝑆 ∈ (0..^(#‘𝐹))) ∧ 𝑦 ∈ (0..^(#‘𝐹)))) ∧ 𝑧 = ((𝑦𝑆) + (#‘𝐹))) → 𝑦 = ((𝑧 + 𝑆) mod (#‘𝐹)))
169146, 168rspcedeq2vd 3307 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32 ((¬ 𝑆𝑦 ∧ (((#‘𝐹) ∈ ℕ0𝑆 ∈ (0..^(#‘𝐹))) ∧ 𝑦 ∈ (0..^(#‘𝐹)))) → ∃𝑧 ∈ (0..^(#‘𝐹))𝑦 = ((𝑧 + 𝑆) mod (#‘𝐹)))
17086, 169pm2.61ian 830 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 ((((#‘𝐹) ∈ ℕ0𝑆 ∈ (0..^(#‘𝐹))) ∧ 𝑦 ∈ (0..^(#‘𝐹))) → ∃𝑧 ∈ (0..^(#‘𝐹))𝑦 = ((𝑧 + 𝑆) mod (#‘𝐹)))
17123rexeqi 3135 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 (∃𝑧 ∈ (0..^𝑁)𝑦 = ((𝑧 + 𝑆) mod (#‘𝐹)) ↔ ∃𝑧 ∈ (0..^(#‘𝐹))𝑦 = ((𝑧 + 𝑆) mod (#‘𝐹)))
172170, 171sylibr 224 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30 ((((#‘𝐹) ∈ ℕ0𝑆 ∈ (0..^(#‘𝐹))) ∧ 𝑦 ∈ (0..^(#‘𝐹))) → ∃𝑧 ∈ (0..^𝑁)𝑦 = ((𝑧 + 𝑆) mod (#‘𝐹)))
173172exp31 629 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29 ((#‘𝐹) ∈ ℕ0 → (𝑆 ∈ (0..^(#‘𝐹)) → (𝑦 ∈ (0..^(#‘𝐹)) → ∃𝑧 ∈ (0..^𝑁)𝑦 = ((𝑧 + 𝑆) mod (#‘𝐹)))))
17424, 173syl5bi 232 . . . . . . . . . . . . . . . . . . . . . . . . . . . 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 65 . . . . . . . . . . . . . . . . . . . . . . . . 25 (𝜑 → (𝑦 ∈ (0..^(#‘𝐹)) → ∃𝑧 ∈ (0..^𝑁)𝑦 = ((𝑧 + 𝑆) mod (#‘𝐹))))
178177adantr 481 . . . . . . . . . . . . . . . . . . . . . . . 24 ((𝜑𝑖 ∈ dom 𝐼) → (𝑦 ∈ (0..^(#‘𝐹)) → ∃𝑧 ∈ (0..^𝑁)𝑦 = ((𝑧 + 𝑆) mod (#‘𝐹))))
179178imp 445 . . . . . . . . . . . . . . . . . . . . . . 23 (((𝜑𝑖 ∈ dom 𝐼) ∧ 𝑦 ∈ (0..^(#‘𝐹))) → ∃𝑧 ∈ (0..^𝑁)𝑦 = ((𝑧 + 𝑆) mod (#‘𝐹)))
180179adantr 481 . . . . . . . . . . . . . . . . . . . . . 22 ((((𝜑𝑖 ∈ dom 𝐼) ∧ 𝑦 ∈ (0..^(#‘𝐹))) ∧ 𝑖 = (𝐹𝑦)) → ∃𝑧 ∈ (0..^𝑁)𝑦 = ((𝑧 + 𝑆) mod (#‘𝐹)))
181 fveq2 6153 . . . . . . . . . . . . . . . . . . . . . . 23 (𝑦 = ((𝑧 + 𝑆) mod (#‘𝐹)) → (𝐹𝑦) = (𝐹‘((𝑧 + 𝑆) mod (#‘𝐹))))
182181reximi 3006 . . . . . . . . . . . . . . . . . . . . . 22 (∃𝑧 ∈ (0..^𝑁)𝑦 = ((𝑧 + 𝑆) mod (#‘𝐹)) → ∃𝑧 ∈ (0..^𝑁)(𝐹𝑦) = (𝐹‘((𝑧 + 𝑆) mod (#‘𝐹))))
183180, 182syl 17 . . . . . . . . . . . . . . . . . . . . 21 ((((𝜑𝑖 ∈ dom 𝐼) ∧ 𝑦 ∈ (0..^(#‘𝐹))) ∧ 𝑖 = (𝐹𝑦)) → ∃𝑧 ∈ (0..^𝑁)(𝐹𝑦) = (𝐹‘((𝑧 + 𝑆) mod (#‘𝐹))))
1843, 20, 213syl 18 . . . . . . . . . . . . . . . . . . . . . . . . 25 (𝜑𝐹 ∈ Word dom 𝐼)
185184ad3antrrr 765 . . . . . . . . . . . . . . . . . . . . . . . 24 ((((𝜑𝑖 ∈ dom 𝐼) ∧ 𝑦 ∈ (0..^(#‘𝐹))) ∧ 𝑖 = (𝐹𝑦)) → 𝐹 ∈ Word dom 𝐼)
186 elfzoelz 12419 . . . . . . . . . . . . . . . . . . . . . . . . . 26 (𝑆 ∈ (0..^𝑁) → 𝑆 ∈ ℤ)
1875, 186syl 17 . . . . . . . . . . . . . . . . . . . . . . . . 25 (𝜑𝑆 ∈ ℤ)
188187ad3antrrr 765 . . . . . . . . . . . . . . . . . . . . . . . 24 ((((𝜑𝑖 ∈ dom 𝐼) ∧ 𝑦 ∈ (0..^(#‘𝐹))) ∧ 𝑖 = (𝐹𝑦)) → 𝑆 ∈ ℤ)
18923eleq2i 2690 . . . . . . . . . . . . . . . . . . . . . . . . 25 (𝑧 ∈ (0..^𝑁) ↔ 𝑧 ∈ (0..^(#‘𝐹)))
190189biimpi 206 . . . . . . . . . . . . . . . . . . . . . . . 24 (𝑧 ∈ (0..^𝑁) → 𝑧 ∈ (0..^(#‘𝐹)))
191 cshwidxmod 13494 . . . . . . . . . . . . . . . . . . . . . . . 24 ((𝐹 ∈ Word dom 𝐼𝑆 ∈ ℤ ∧ 𝑧 ∈ (0..^(#‘𝐹))) → ((𝐹 cyclShift 𝑆)‘𝑧) = (𝐹‘((𝑧 + 𝑆) mod (#‘𝐹))))
192185, 188, 190, 191syl2an3an 1383 . . . . . . . . . . . . . . . . . . . . . . 23 (((((𝜑𝑖 ∈ dom 𝐼) ∧ 𝑦 ∈ (0..^(#‘𝐹))) ∧ 𝑖 = (𝐹𝑦)) ∧ 𝑧 ∈ (0..^𝑁)) → ((𝐹 cyclShift 𝑆)‘𝑧) = (𝐹‘((𝑧 + 𝑆) mod (#‘𝐹))))
193192eqeq2d 2631 . . . . . . . . . . . . . . . . . . . . . 22 (((((𝜑𝑖 ∈ dom 𝐼) ∧ 𝑦 ∈ (0..^(#‘𝐹))) ∧ 𝑖 = (𝐹𝑦)) ∧ 𝑧 ∈ (0..^𝑁)) → ((𝐹𝑦) = ((𝐹 cyclShift 𝑆)‘𝑧) ↔ (𝐹𝑦) = (𝐹‘((𝑧 + 𝑆) mod (#‘𝐹)))))
194193rexbidva 3043 . . . . . . . . . . . . . . . . . . . . 21 ((((𝜑𝑖 ∈ dom 𝐼) ∧ 𝑦 ∈ (0..^(#‘𝐹))) ∧ 𝑖 = (𝐹𝑦)) → (∃𝑧 ∈ (0..^𝑁)(𝐹𝑦) = ((𝐹 cyclShift 𝑆)‘𝑧) ↔ ∃𝑧 ∈ (0..^𝑁)(𝐹𝑦) = (𝐹‘((𝑧 + 𝑆) mod (#‘𝐹)))))
195183, 194mpbird 247 . . . . . . . . . . . . . . . . . . . 20 ((((𝜑𝑖 ∈ dom 𝐼) ∧ 𝑦 ∈ (0..^(#‘𝐹))) ∧ 𝑖 = (𝐹𝑦)) → ∃𝑧 ∈ (0..^𝑁)(𝐹𝑦) = ((𝐹 cyclShift 𝑆)‘𝑧))
1961, 2, 3, 4, 5, 6crctcshlem2 26596 . . . . . . . . . . . . . . . . . . . . . . 23 (𝜑 → (#‘𝐻) = 𝑁)
197196oveq2d 6626 . . . . . . . . . . . . . . . . . . . . . 22 (𝜑 → (0..^(#‘𝐻)) = (0..^𝑁))
198197ad3antrrr 765 . . . . . . . . . . . . . . . . . . . . 21 ((((𝜑𝑖 ∈ dom 𝐼) ∧ 𝑦 ∈ (0..^(#‘𝐹))) ∧ 𝑖 = (𝐹𝑦)) → (0..^(#‘𝐻)) = (0..^𝑁))
199 simpr 477 . . . . . . . . . . . . . . . . . . . . . 22 ((((𝜑𝑖 ∈ dom 𝐼) ∧ 𝑦 ∈ (0..^(#‘𝐹))) ∧ 𝑖 = (𝐹𝑦)) → 𝑖 = (𝐹𝑦))
2006fveq1i 6154 . . . . . . . . . . . . . . . . . . . . . . 23 (𝐻𝑧) = ((𝐹 cyclShift 𝑆)‘𝑧)
201200a1i 11 . . . . . . . . . . . . . . . . . . . . . 22 ((((𝜑𝑖 ∈ dom 𝐼) ∧ 𝑦 ∈ (0..^(#‘𝐹))) ∧ 𝑖 = (𝐹𝑦)) → (𝐻𝑧) = ((𝐹 cyclShift 𝑆)‘𝑧))
202199, 201eqeq12d 2636 . . . . . . . . . . . . . . . . . . . . 21 ((((𝜑𝑖 ∈ dom 𝐼) ∧ 𝑦 ∈ (0..^(#‘𝐹))) ∧ 𝑖 = (𝐹𝑦)) → (𝑖 = (𝐻𝑧) ↔ (𝐹𝑦) = ((𝐹 cyclShift 𝑆)‘𝑧)))
203198, 202rexeqbidv 3145 . . . . . . . . . . . . . . . . . . . 20 ((((𝜑𝑖 ∈ dom 𝐼) ∧ 𝑦 ∈ (0..^(#‘𝐹))) ∧ 𝑖 = (𝐹𝑦)) → (∃𝑧 ∈ (0..^(#‘𝐻))𝑖 = (𝐻𝑧) ↔ ∃𝑧 ∈ (0..^𝑁)(𝐹𝑦) = ((𝐹 cyclShift 𝑆)‘𝑧)))
204195, 203mpbird 247 . . . . . . . . . . . . . . . . . . 19 ((((𝜑𝑖 ∈ dom 𝐼) ∧ 𝑦 ∈ (0..^(#‘𝐹))) ∧ 𝑖 = (𝐹𝑦)) → ∃𝑧 ∈ (0..^(#‘𝐻))𝑖 = (𝐻𝑧))
205204ex 450 . . . . . . . . . . . . . . . . . 18 (((𝜑𝑖 ∈ dom 𝐼) ∧ 𝑦 ∈ (0..^(#‘𝐹))) → (𝑖 = (𝐹𝑦) → ∃𝑧 ∈ (0..^(#‘𝐻))𝑖 = (𝐻𝑧)))
206205rexlimdva 3025 . . . . . . . . . . . . . . . . 17 ((𝜑𝑖 ∈ dom 𝐼) → (∃𝑦 ∈ (0..^(#‘𝐹))𝑖 = (𝐹𝑦) → ∃𝑧 ∈ (0..^(#‘𝐻))𝑖 = (𝐻𝑧)))
207206ralimdva 2957 . . . . . . . . . . . . . . . 16 (𝜑 → (∀𝑖 ∈ dom 𝐼𝑦 ∈ (0..^(#‘𝐹))𝑖 = (𝐹𝑦) → ∀𝑖 ∈ dom 𝐼𝑧 ∈ (0..^(#‘𝐻))𝑖 = (𝐻𝑧)))
208207impcom 446 . . . . . . . . . . . . . . 15 ((∀𝑖 ∈ dom 𝐼𝑦 ∈ (0..^(#‘𝐹))𝑖 = (𝐹𝑦) ∧ 𝜑) → ∀𝑖 ∈ dom 𝐼𝑧 ∈ (0..^(#‘𝐻))𝑖 = (𝐻𝑧))
209208anim1i 591 . . . . . . . . . . . . . 14 (((∀𝑖 ∈ dom 𝐼𝑦 ∈ (0..^(#‘𝐹))𝑖 = (𝐹𝑦) ∧ 𝜑) ∧ 𝐻:(0..^(#‘𝐻))⟶dom 𝐼) → (∀𝑖 ∈ dom 𝐼𝑧 ∈ (0..^(#‘𝐻))𝑖 = (𝐻𝑧) ∧ 𝐻:(0..^(#‘𝐻))⟶dom 𝐼))
210209ancomd 467 . . . . . . . . . . . . 13 (((∀𝑖 ∈ dom 𝐼𝑦 ∈ (0..^(#‘𝐹))𝑖 = (𝐹𝑦) ∧ 𝜑) ∧ 𝐻:(0..^(#‘𝐻))⟶dom 𝐼) → (𝐻:(0..^(#‘𝐻))⟶dom 𝐼 ∧ ∀𝑖 ∈ dom 𝐼𝑧 ∈ (0..^(#‘𝐻))𝑖 = (𝐻𝑧)))
211 dffo3 6335 . . . . . . . . . . . . 13 (𝐻:(0..^(#‘𝐻))–onto→dom 𝐼 ↔ (𝐻:(0..^(#‘𝐻))⟶dom 𝐼 ∧ ∀𝑖 ∈ dom 𝐼𝑧 ∈ (0..^(#‘𝐻))𝑖 = (𝐻𝑧)))
212210, 211sylibr 224 . . . . . . . . . . . 12 (((∀𝑖 ∈ dom 𝐼𝑦 ∈ (0..^(#‘𝐹))𝑖 = (𝐹𝑦) ∧ 𝜑) ∧ 𝐻:(0..^(#‘𝐻))⟶dom 𝐼) → 𝐻:(0..^(#‘𝐻))–onto→dom 𝐼)
213212exp31 629 . . . . . . . . . . 11 (∀𝑖 ∈ dom 𝐼𝑦 ∈ (0..^(#‘𝐹))𝑖 = (𝐹𝑦) → (𝜑 → (𝐻:(0..^(#‘𝐻))⟶dom 𝐼𝐻:(0..^(#‘𝐻))–onto→dom 𝐼)))
21419, 213simplbiim 658 . . . . . . . . . 10 (𝐹:(0..^(#‘𝐹))–onto→dom 𝐼 → (𝜑 → (𝐻:(0..^(#‘𝐻))⟶dom 𝐼𝐻:(0..^(#‘𝐻))–onto→dom 𝐼)))
21518, 214simplbiim 658 . . . . . . . . 9 (𝐹:(0..^(#‘𝐹))–1-1-onto→dom 𝐼 → (𝜑 → (𝐻:(0..^(#‘𝐻))⟶dom 𝐼𝐻:(0..^(#‘𝐻))–onto→dom 𝐼)))
216215com13 88 . . . . . . . 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 446 . . . . . 6 ((𝜑𝐻(Trails‘𝐺)𝑄) → (𝐹:(0..^(#‘𝐹))–1-1-onto→dom 𝐼𝐻:(0..^(#‘𝐻))–onto→dom 𝐼))
21913, 218mpd 15 . . . . 5 ((𝜑𝐻(Trails‘𝐺)𝑄) → 𝐻:(0..^(#‘𝐻))–onto→dom 𝐼)
2209, 219jca 554 . . . 4 ((𝜑𝐻(Trails‘𝐺)𝑄) → (𝐻(Trails‘𝐺)𝑄𝐻:(0..^(#‘𝐻))–onto→dom 𝐼))
2218, 220mpdan 701 . . 3 (𝜑 → (𝐻(Trails‘𝐺)𝑄𝐻:(0..^(#‘𝐻))–onto→dom 𝐼))
2222iseupth 26944 . . 3 (𝐻(EulerPaths‘𝐺)𝑄 ↔ (𝐻(Trails‘𝐺)𝑄𝐻:(0..^(#‘𝐻))–onto→dom 𝐼))
223221, 222sylibr 224 . 2 (𝜑𝐻(EulerPaths‘𝐺)𝑄)
2241, 2, 3, 4, 5, 6, 7crctcsh 26602 . 2 (𝜑𝐻(Circuits‘𝐺)𝑄)
225223, 224jca 554 1 (𝜑 → (𝐻(EulerPaths‘𝐺)𝑄𝐻(Circuits‘𝐺)𝑄))
Colors of variables: wff setvar class
Syntax hints:  ¬ wn 3  wi 4  wb 196  wa 384  w3a 1036   = wceq 1480  wcel 1987  wral 2907  wrex 2908  ifcif 4063   class class class wbr 4618  cmpt 4678  dom cdm 5079  wf 5848  1-1wf1 5849  ontowfo 5850  1-1-ontowf1o 5851  cfv 5852  (class class class)co 6610  cc 9886  cr 9887  0cc0 9888   + caddc 9891   < clt 10026  cle 10027  cmin 10218  cn 10972  0cn0 11244  cz 11329  ...cfz 12276  ..^cfzo 12414   mod cmo 12616  #chash 13065  Word cword 13238   cyclShift ccsh 13479  Vtxcvtx 25791  iEdgciedg 25792  Walkscwlks 26379  Trailsctrls 26473  Circuitsccrcts 26565  EulerPathsceupth 26940
This theorem was proved from axioms:  ax-mp 5  ax-1 6  ax-2 7  ax-3 8  ax-gen 1719  ax-4 1734  ax-5 1836  ax-6 1885  ax-7 1932  ax-8 1989  ax-9 1996  ax-10 2016  ax-11 2031  ax-12 2044  ax-13 2245  ax-ext 2601  ax-rep 4736  ax-sep 4746  ax-nul 4754  ax-pow 4808  ax-pr 4872  ax-un 6909  ax-cnex 9944  ax-resscn 9945  ax-1cn 9946  ax-icn 9947  ax-addcl 9948  ax-addrcl 9949  ax-mulcl 9950  ax-mulrcl 9951  ax-mulcom 9952  ax-addass 9953  ax-mulass 9954  ax-distr 9955  ax-i2m1 9956  ax-1ne0 9957  ax-1rid 9958  ax-rnegex 9959  ax-rrecex 9960  ax-cnre 9961  ax-pre-lttri 9962  ax-pre-lttrn 9963  ax-pre-ltadd 9964  ax-pre-mulgt0 9965  ax-pre-sup 9966
This theorem depends on definitions:  df-bi 197  df-or 385  df-an 386  df-ifp 1012  df-3or 1037  df-3an 1038  df-tru 1483  df-ex 1702  df-nf 1707  df-sb 1878  df-eu 2473  df-mo 2474  df-clab 2608  df-cleq 2614  df-clel 2617  df-nfc 2750  df-ne 2791  df-nel 2894  df-ral 2912  df-rex 2913  df-reu 2914  df-rmo 2915  df-rab 2916  df-v 3191  df-sbc 3422  df-csb 3519  df-dif 3562  df-un 3564  df-in 3566  df-ss 3573  df-pss 3575  df-nul 3897  df-if 4064  df-pw 4137  df-sn 4154  df-pr 4156  df-tp 4158  df-op 4160  df-uni 4408  df-int 4446  df-iun 4492  df-br 4619  df-opab 4679  df-mpt 4680  df-tr 4718  df-eprel 4990  df-id 4994  df-po 5000  df-so 5001  df-fr 5038  df-we 5040  df-xp 5085  df-rel 5086  df-cnv 5087  df-co 5088  df-dm 5089  df-rn 5090  df-res 5091  df-ima 5092  df-pred 5644  df-ord 5690  df-on 5691  df-lim 5692  df-suc 5693  df-iota 5815  df-fun 5854  df-fn 5855  df-f 5856  df-f1 5857  df-fo 5858  df-f1o 5859  df-fv 5860  df-riota 6571  df-ov 6613  df-oprab 6614  df-mpt2 6615  df-om 7020  df-1st 7120  df-2nd 7121  df-wrecs 7359  df-recs 7420  df-rdg 7458  df-1o 7512  df-oadd 7516  df-er 7694  df-map 7811  df-pm 7812  df-en 7908  df-dom 7909  df-sdom 7910  df-fin 7911  df-sup 8300  df-inf 8301  df-card 8717  df-pnf 10028  df-mnf 10029  df-xr 10030  df-ltxr 10031  df-le 10032  df-sub 10220  df-neg 10221  df-div 10637  df-nn 10973  df-2 11031  df-n0 11245  df-z 11330  df-uz 11640  df-rp 11785  df-ico 12131  df-fz 12277  df-fzo 12415  df-fl 12541  df-mod 12617  df-hash 13066  df-word 13246  df-concat 13248  df-substr 13250  df-csh 13480  df-wlks 26382  df-trls 26475  df-crcts 26567  df-eupth 26941
This theorem is referenced by:  eucrct2eupth  26988
  Copyright terms: Public domain W3C validator