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

Theorem eucrctshift 27221
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 26771 . . . 4 (𝜑𝐻(Trails‘𝐺)𝑄)
9 simpr 476 . . . . 5 ((𝜑𝐻(Trails‘𝐺)𝑄) → 𝐻(Trails‘𝐺)𝑄)
10 eucrctshift.e . . . . . . . 8 (𝜑𝐹(EulerPaths‘𝐺)𝑃)
112eupthf1o 27182 . . . . . . . 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 trliswlk 26650 . . . . . . . . 9 (𝐻(Trails‘𝐺)𝑄𝐻(Walks‘𝐺)𝑄)
152wlkf 26566 . . . . . . . . 9 (𝐻(Walks‘𝐺)𝑄𝐻 ∈ Word dom 𝐼)
16 wrdf 13342 . . . . . . . . 9 (𝐻 ∈ Word dom 𝐼𝐻:(0..^(#‘𝐻))⟶dom 𝐼)
1714, 15, 163syl 18 . . . . . . . 8 (𝐻(Trails‘𝐺)𝑄𝐻:(0..^(#‘𝐻))⟶dom 𝐼)
18 df-f1o 5933 . . . . . . . . . 10 (𝐹:(0..^(#‘𝐹))–1-1-onto→dom 𝐼 ↔ (𝐹:(0..^(#‘𝐹))–1-1→dom 𝐼𝐹:(0..^(#‘𝐹))–onto→dom 𝐼))
19 dffo3 6414 . . . . . . . . . . 11 (𝐹:(0..^(#‘𝐹))–onto→dom 𝐼 ↔ (𝐹:(0..^(#‘𝐹))⟶dom 𝐼 ∧ ∀𝑖 ∈ dom 𝐼𝑦 ∈ (0..^(#‘𝐹))𝑖 = (𝐹𝑦)))
20 crctiswlk 26747 . . . . . . . . . . . . . . . . . . . . . . . . . . 27 (𝐹(Circuits‘𝐺)𝑃𝐹(Walks‘𝐺)𝑃)
212wlkf 26566 . . . . . . . . . . . . . . . . . . . . . . . . . . 27 (𝐹(Walks‘𝐺)𝑃𝐹 ∈ Word dom 𝐼)
22 lencl 13356 . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 (𝐹 ∈ Word dom 𝐼 → (#‘𝐹) ∈ ℕ0)
234oveq2i 6701 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30 (0..^𝑁) = (0..^(#‘𝐹))
2423eleq2i 2722 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29 (𝑆 ∈ (0..^𝑁) ↔ 𝑆 ∈ (0..^(#‘𝐹)))
25 elfzonn0 12552 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37 (𝑆 ∈ (0..^(#‘𝐹)) → 𝑆 ∈ ℕ0)
2625adantl 481 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36 (((#‘𝐹) ∈ ℕ0𝑆 ∈ (0..^(#‘𝐹))) → 𝑆 ∈ ℕ0)
27 elfzonn0 12552 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36 (𝑦 ∈ (0..^(#‘𝐹)) → 𝑦 ∈ ℕ0)
28 nn0sub 11381 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36 ((𝑆 ∈ ℕ0𝑦 ∈ ℕ0) → (𝑆𝑦 ↔ (𝑦𝑆) ∈ ℕ0))
2926, 27, 28syl2an 493 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35 ((((#‘𝐹) ∈ ℕ0𝑆 ∈ (0..^(#‘𝐹))) ∧ 𝑦 ∈ (0..^(#‘𝐹))) → (𝑆𝑦 ↔ (𝑦𝑆) ∈ ℕ0))
3029biimpac 502 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34 ((𝑆𝑦 ∧ (((#‘𝐹) ∈ ℕ0𝑆 ∈ (0..^(#‘𝐹))) ∧ 𝑦 ∈ (0..^(#‘𝐹)))) → (𝑦𝑆) ∈ ℕ0)
31 elfzo0 12548 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36 (𝑦 ∈ (0..^(#‘𝐹)) ↔ (𝑦 ∈ ℕ0 ∧ (#‘𝐹) ∈ ℕ ∧ 𝑦 < (#‘𝐹)))
32 simp2 1082 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36 ((𝑦 ∈ ℕ0 ∧ (#‘𝐹) ∈ ℕ ∧ 𝑦 < (#‘𝐹)) → (#‘𝐹) ∈ ℕ)
3331, 32sylbi 207 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35 (𝑦 ∈ (0..^(#‘𝐹)) → (#‘𝐹) ∈ ℕ)
3433ad2antll 765 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34 ((𝑆𝑦 ∧ (((#‘𝐹) ∈ ℕ0𝑆 ∈ (0..^(#‘𝐹))) ∧ 𝑦 ∈ (0..^(#‘𝐹)))) → (#‘𝐹) ∈ ℕ)
35 nn0re 11339 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47 (𝑦 ∈ ℕ0𝑦 ∈ ℝ)
3635ad2antrr 762 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46 (((𝑦 ∈ ℕ0 ∧ (#‘𝐹) ∈ ℕ) ∧ 𝑆 ∈ (0..^(#‘𝐹))) → 𝑦 ∈ ℝ)
37 nnre 11065 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48 ((#‘𝐹) ∈ ℕ → (#‘𝐹) ∈ ℝ)
3837adantl 481 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47 ((𝑦 ∈ ℕ0 ∧ (#‘𝐹) ∈ ℕ) → (#‘𝐹) ∈ ℝ)
3938adantr 480 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46 (((𝑦 ∈ ℕ0 ∧ (#‘𝐹) ∈ ℕ) ∧ 𝑆 ∈ (0..^(#‘𝐹))) → (#‘𝐹) ∈ ℝ)
40 elfzoelz 12509 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48 (𝑆 ∈ (0..^(#‘𝐹)) → 𝑆 ∈ ℤ)
4140zred 11520 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47 (𝑆 ∈ (0..^(#‘𝐹)) → 𝑆 ∈ ℝ)
42 readdcl 10057 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47 (((#‘𝐹) ∈ ℝ ∧ 𝑆 ∈ ℝ) → ((#‘𝐹) + 𝑆) ∈ ℝ)
4338, 41, 42syl2an 493 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46 (((𝑦 ∈ ℕ0 ∧ (#‘𝐹) ∈ ℕ) ∧ 𝑆 ∈ (0..^(#‘𝐹))) → ((#‘𝐹) + 𝑆) ∈ ℝ)
4436, 39, 433jca 1261 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45 (((𝑦 ∈ ℕ0 ∧ (#‘𝐹) ∈ ℕ) ∧ 𝑆 ∈ (0..^(#‘𝐹))) → (𝑦 ∈ ℝ ∧ (#‘𝐹) ∈ ℝ ∧ ((#‘𝐹) + 𝑆) ∈ ℝ))
45 elfzole1 12517 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47 (𝑆 ∈ (0..^(#‘𝐹)) → 0 ≤ 𝑆)
4645adantl 481 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46 (((𝑦 ∈ ℕ0 ∧ (#‘𝐹) ∈ ℕ) ∧ 𝑆 ∈ (0..^(#‘𝐹))) → 0 ≤ 𝑆)
47 addge01 10576 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47 (((#‘𝐹) ∈ ℝ ∧ 𝑆 ∈ ℝ) → (0 ≤ 𝑆 ↔ (#‘𝐹) ≤ ((#‘𝐹) + 𝑆)))
4838, 41, 47syl2an 493 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46 (((𝑦 ∈ ℕ0 ∧ (#‘𝐹) ∈ ℕ) ∧ 𝑆 ∈ (0..^(#‘𝐹))) → (0 ≤ 𝑆 ↔ (#‘𝐹) ≤ ((#‘𝐹) + 𝑆)))
4946, 48mpbid 222 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45 (((𝑦 ∈ ℕ0 ∧ (#‘𝐹) ∈ ℕ) ∧ 𝑆 ∈ (0..^(#‘𝐹))) → (#‘𝐹) ≤ ((#‘𝐹) + 𝑆))
5044, 49lelttrdi 10237 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44 (((𝑦 ∈ ℕ0 ∧ (#‘𝐹) ∈ ℕ) ∧ 𝑆 ∈ (0..^(#‘𝐹))) → (𝑦 < (#‘𝐹) → 𝑦 < ((#‘𝐹) + 𝑆)))
5150ex 449 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43 ((𝑦 ∈ ℕ0 ∧ (#‘𝐹) ∈ ℕ) → (𝑆 ∈ (0..^(#‘𝐹)) → (𝑦 < (#‘𝐹) → 𝑦 < ((#‘𝐹) + 𝑆))))
5251com23 86 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42 ((𝑦 ∈ ℕ0 ∧ (#‘𝐹) ∈ ℕ) → (𝑦 < (#‘𝐹) → (𝑆 ∈ (0..^(#‘𝐹)) → 𝑦 < ((#‘𝐹) + 𝑆))))
53523impia 1280 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41 ((𝑦 ∈ ℕ0 ∧ (#‘𝐹) ∈ ℕ ∧ 𝑦 < (#‘𝐹)) → (𝑆 ∈ (0..^(#‘𝐹)) → 𝑦 < ((#‘𝐹) + 𝑆)))
5453adantld 482 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40 ((𝑦 ∈ ℕ0 ∧ (#‘𝐹) ∈ ℕ ∧ 𝑦 < (#‘𝐹)) → (((#‘𝐹) ∈ ℕ0𝑆 ∈ (0..^(#‘𝐹))) → 𝑦 < ((#‘𝐹) + 𝑆)))
5554imp 444 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39 (((𝑦 ∈ ℕ0 ∧ (#‘𝐹) ∈ ℕ ∧ 𝑦 < (#‘𝐹)) ∧ ((#‘𝐹) ∈ ℕ0𝑆 ∈ (0..^(#‘𝐹)))) → 𝑦 < ((#‘𝐹) + 𝑆))
56353ad2ant1 1102 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41 ((𝑦 ∈ ℕ0 ∧ (#‘𝐹) ∈ ℕ ∧ 𝑦 < (#‘𝐹)) → 𝑦 ∈ ℝ)
5756adantr 480 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40 (((𝑦 ∈ ℕ0 ∧ (#‘𝐹) ∈ ℕ ∧ 𝑦 < (#‘𝐹)) ∧ ((#‘𝐹) ∈ ℕ0𝑆 ∈ (0..^(#‘𝐹)))) → 𝑦 ∈ ℝ)
5841ad2antll 765 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40 (((𝑦 ∈ ℕ0 ∧ (#‘𝐹) ∈ ℕ ∧ 𝑦 < (#‘𝐹)) ∧ ((#‘𝐹) ∈ ℕ0𝑆 ∈ (0..^(#‘𝐹)))) → 𝑆 ∈ ℝ)
59 elfzoel2 12508 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42 (𝑆 ∈ (0..^(#‘𝐹)) → (#‘𝐹) ∈ ℤ)
6059zred 11520 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41 (𝑆 ∈ (0..^(#‘𝐹)) → (#‘𝐹) ∈ ℝ)
6160ad2antll 765 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40 (((𝑦 ∈ ℕ0 ∧ (#‘𝐹) ∈ ℕ ∧ 𝑦 < (#‘𝐹)) ∧ ((#‘𝐹) ∈ ℕ0𝑆 ∈ (0..^(#‘𝐹)))) → (#‘𝐹) ∈ ℝ)
6257, 58, 61ltsubaddd 10661 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39 (((𝑦 ∈ ℕ0 ∧ (#‘𝐹) ∈ ℕ ∧ 𝑦 < (#‘𝐹)) ∧ ((#‘𝐹) ∈ ℕ0𝑆 ∈ (0..^(#‘𝐹)))) → ((𝑦𝑆) < (#‘𝐹) ↔ 𝑦 < ((#‘𝐹) + 𝑆)))
6355, 62mpbird 247 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38 (((𝑦 ∈ ℕ0 ∧ (#‘𝐹) ∈ ℕ ∧ 𝑦 < (#‘𝐹)) ∧ ((#‘𝐹) ∈ ℕ0𝑆 ∈ (0..^(#‘𝐹)))) → (𝑦𝑆) < (#‘𝐹))
6463ex 449 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37 ((𝑦 ∈ ℕ0 ∧ (#‘𝐹) ∈ ℕ ∧ 𝑦 < (#‘𝐹)) → (((#‘𝐹) ∈ ℕ0𝑆 ∈ (0..^(#‘𝐹))) → (𝑦𝑆) < (#‘𝐹)))
6531, 64sylbi 207 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36 (𝑦 ∈ (0..^(#‘𝐹)) → (((#‘𝐹) ∈ ℕ0𝑆 ∈ (0..^(#‘𝐹))) → (𝑦𝑆) < (#‘𝐹)))
6665impcom 445 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35 ((((#‘𝐹) ∈ ℕ0𝑆 ∈ (0..^(#‘𝐹))) ∧ 𝑦 ∈ (0..^(#‘𝐹))) → (𝑦𝑆) < (#‘𝐹))
6766adantl 481 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34 ((𝑆𝑦 ∧ (((#‘𝐹) ∈ ℕ0𝑆 ∈ (0..^(#‘𝐹))) ∧ 𝑦 ∈ (0..^(#‘𝐹)))) → (𝑦𝑆) < (#‘𝐹))
68 elfzo0 12548 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34 ((𝑦𝑆) ∈ (0..^(#‘𝐹)) ↔ ((𝑦𝑆) ∈ ℕ0 ∧ (#‘𝐹) ∈ ℕ ∧ (𝑦𝑆) < (#‘𝐹)))
6930, 34, 67, 68syl3anbrc 1265 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33 ((𝑆𝑦 ∧ (((#‘𝐹) ∈ ℕ0𝑆 ∈ (0..^(#‘𝐹))) ∧ 𝑦 ∈ (0..^(#‘𝐹)))) → (𝑦𝑆) ∈ (0..^(#‘𝐹)))
70 oveq1 6697 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36 (𝑧 = (𝑦𝑆) → (𝑧 + 𝑆) = ((𝑦𝑆) + 𝑆))
7170oveq1d 6705 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35 (𝑧 = (𝑦𝑆) → ((𝑧 + 𝑆) mod (#‘𝐹)) = (((𝑦𝑆) + 𝑆) mod (#‘𝐹)))
7240zcnd 11521 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41 (𝑆 ∈ (0..^(#‘𝐹)) → 𝑆 ∈ ℂ)
7372adantl 481 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40 (((#‘𝐹) ∈ ℕ0𝑆 ∈ (0..^(#‘𝐹))) → 𝑆 ∈ ℂ)
74 elfzoelz 12509 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41 (𝑦 ∈ (0..^(#‘𝐹)) → 𝑦 ∈ ℤ)
7574zcnd 11521 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40 (𝑦 ∈ (0..^(#‘𝐹)) → 𝑦 ∈ ℂ)
7673, 75anim12ci 590 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39 ((((#‘𝐹) ∈ ℕ0𝑆 ∈ (0..^(#‘𝐹))) ∧ 𝑦 ∈ (0..^(#‘𝐹))) → (𝑦 ∈ ℂ ∧ 𝑆 ∈ ℂ))
7776adantl 481 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38 ((𝑆𝑦 ∧ (((#‘𝐹) ∈ ℕ0𝑆 ∈ (0..^(#‘𝐹))) ∧ 𝑦 ∈ (0..^(#‘𝐹)))) → (𝑦 ∈ ℂ ∧ 𝑆 ∈ ℂ))
78 npcan 10328 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38 ((𝑦 ∈ ℂ ∧ 𝑆 ∈ ℂ) → ((𝑦𝑆) + 𝑆) = 𝑦)
7977, 78syl 17 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37 ((𝑆𝑦 ∧ (((#‘𝐹) ∈ ℕ0𝑆 ∈ (0..^(#‘𝐹))) ∧ 𝑦 ∈ (0..^(#‘𝐹)))) → ((𝑦𝑆) + 𝑆) = 𝑦)
8079oveq1d 6705 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36 ((𝑆𝑦 ∧ (((#‘𝐹) ∈ ℕ0𝑆 ∈ (0..^(#‘𝐹))) ∧ 𝑦 ∈ (0..^(#‘𝐹)))) → (((𝑦𝑆) + 𝑆) mod (#‘𝐹)) = (𝑦 mod (#‘𝐹)))
81 zmodidfzoimp 12740 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37 (𝑦 ∈ (0..^(#‘𝐹)) → (𝑦 mod (#‘𝐹)) = 𝑦)
8281ad2antll 765 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36 ((𝑆𝑦 ∧ (((#‘𝐹) ∈ ℕ0𝑆 ∈ (0..^(#‘𝐹))) ∧ 𝑦 ∈ (0..^(#‘𝐹)))) → (𝑦 mod (#‘𝐹)) = 𝑦)
8380, 82eqtrd 2685 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35 ((𝑆𝑦 ∧ (((#‘𝐹) ∈ ℕ0𝑆 ∈ (0..^(#‘𝐹))) ∧ 𝑦 ∈ (0..^(#‘𝐹)))) → (((𝑦𝑆) + 𝑆) mod (#‘𝐹)) = 𝑦)
8471, 83sylan9eqr 2707 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34 (((𝑆𝑦 ∧ (((#‘𝐹) ∈ ℕ0𝑆 ∈ (0..^(#‘𝐹))) ∧ 𝑦 ∈ (0..^(#‘𝐹)))) ∧ 𝑧 = (𝑦𝑆)) → ((𝑧 + 𝑆) mod (#‘𝐹)) = 𝑦)
8584eqcomd 2657 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33 (((𝑆𝑦 ∧ (((#‘𝐹) ∈ ℕ0𝑆 ∈ (0..^(#‘𝐹))) ∧ 𝑦 ∈ (0..^(#‘𝐹)))) ∧ 𝑧 = (𝑦𝑆)) → 𝑦 = ((𝑧 + 𝑆) mod (#‘𝐹)))
8669, 85rspcedeq2vd 3350 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32 ((𝑆𝑦 ∧ (((#‘𝐹) ∈ ℕ0𝑆 ∈ (0..^(#‘𝐹))) ∧ 𝑦 ∈ (0..^(#‘𝐹)))) → ∃𝑧 ∈ (0..^(#‘𝐹))𝑦 = ((𝑧 + 𝑆) mod (#‘𝐹)))
87 elfzo0 12548 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39 (𝑆 ∈ (0..^(#‘𝐹)) ↔ (𝑆 ∈ ℕ0 ∧ (#‘𝐹) ∈ ℕ ∧ 𝑆 < (#‘𝐹)))
88 nn0cn 11340 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46 (𝑦 ∈ ℕ0𝑦 ∈ ℂ)
8988ad2antrr 762 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45 (((𝑦 ∈ ℕ0𝑦 < (#‘𝐹)) ∧ (𝑆 ∈ ℕ0 ∧ (#‘𝐹) ∈ ℕ ∧ 𝑆 < (#‘𝐹))) → 𝑦 ∈ ℂ)
90 nn0cn 11340 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47 (𝑆 ∈ ℕ0𝑆 ∈ ℂ)
91903ad2ant1 1102 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46 ((𝑆 ∈ ℕ0 ∧ (#‘𝐹) ∈ ℕ ∧ 𝑆 < (#‘𝐹)) → 𝑆 ∈ ℂ)
9291adantl 481 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45 (((𝑦 ∈ ℕ0𝑦 < (#‘𝐹)) ∧ (𝑆 ∈ ℕ0 ∧ (#‘𝐹) ∈ ℕ ∧ 𝑆 < (#‘𝐹))) → 𝑆 ∈ ℂ)
93 nncn 11066 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47 ((#‘𝐹) ∈ ℕ → (#‘𝐹) ∈ ℂ)
94933ad2ant2 1103 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46 ((𝑆 ∈ ℕ0 ∧ (#‘𝐹) ∈ ℕ ∧ 𝑆 < (#‘𝐹)) → (#‘𝐹) ∈ ℂ)
9594adantl 481 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45 (((𝑦 ∈ ℕ0𝑦 < (#‘𝐹)) ∧ (𝑆 ∈ ℕ0 ∧ (#‘𝐹) ∈ ℕ ∧ 𝑆 < (#‘𝐹))) → (#‘𝐹) ∈ ℂ)
9689, 92, 95subadd23d 10452 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44 (((𝑦 ∈ ℕ0𝑦 < (#‘𝐹)) ∧ (𝑆 ∈ ℕ0 ∧ (#‘𝐹) ∈ ℕ ∧ 𝑆 < (#‘𝐹))) → ((𝑦𝑆) + (#‘𝐹)) = (𝑦 + ((#‘𝐹) − 𝑆)))
97 simpll 805 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45 (((𝑦 ∈ ℕ0𝑦 < (#‘𝐹)) ∧ (𝑆 ∈ ℕ0 ∧ (#‘𝐹) ∈ ℕ ∧ 𝑆 < (#‘𝐹))) → 𝑦 ∈ ℕ0)
98 nn0z 11438 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49 (𝑆 ∈ ℕ0𝑆 ∈ ℤ)
99 nnz 11437 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49 ((#‘𝐹) ∈ ℕ → (#‘𝐹) ∈ ℤ)
100 znnsub 11461 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49 ((𝑆 ∈ ℤ ∧ (#‘𝐹) ∈ ℤ) → (𝑆 < (#‘𝐹) ↔ ((#‘𝐹) − 𝑆) ∈ ℕ))
10198, 99, 100syl2an 493 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48 ((𝑆 ∈ ℕ0 ∧ (#‘𝐹) ∈ ℕ) → (𝑆 < (#‘𝐹) ↔ ((#‘𝐹) − 𝑆) ∈ ℕ))
102101biimp3a 1472 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47 ((𝑆 ∈ ℕ0 ∧ (#‘𝐹) ∈ ℕ ∧ 𝑆 < (#‘𝐹)) → ((#‘𝐹) − 𝑆) ∈ ℕ)
103102adantl 481 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46 (((𝑦 ∈ ℕ0𝑦 < (#‘𝐹)) ∧ (𝑆 ∈ ℕ0 ∧ (#‘𝐹) ∈ ℕ ∧ 𝑆 < (#‘𝐹))) → ((#‘𝐹) − 𝑆) ∈ ℕ)
104103nnnn0d 11389 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45 (((𝑦 ∈ ℕ0𝑦 < (#‘𝐹)) ∧ (𝑆 ∈ ℕ0 ∧ (#‘𝐹) ∈ ℕ ∧ 𝑆 < (#‘𝐹))) → ((#‘𝐹) − 𝑆) ∈ ℕ0)
10597, 104nn0addcld 11393 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44 (((𝑦 ∈ ℕ0𝑦 < (#‘𝐹)) ∧ (𝑆 ∈ ℕ0 ∧ (#‘𝐹) ∈ ℕ ∧ 𝑆 < (#‘𝐹))) → (𝑦 + ((#‘𝐹) − 𝑆)) ∈ ℕ0)
10696, 105eqeltrd 2730 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43 (((𝑦 ∈ ℕ0𝑦 < (#‘𝐹)) ∧ (𝑆 ∈ ℕ0 ∧ (#‘𝐹) ∈ ℕ ∧ 𝑆 < (#‘𝐹))) → ((𝑦𝑆) + (#‘𝐹)) ∈ ℕ0)
107106adantr 480 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42 ((((𝑦 ∈ ℕ0𝑦 < (#‘𝐹)) ∧ (𝑆 ∈ ℕ0 ∧ (#‘𝐹) ∈ ℕ ∧ 𝑆 < (#‘𝐹))) ∧ ¬ 𝑆𝑦) → ((𝑦𝑆) + (#‘𝐹)) ∈ ℕ0)
108 simplr2 1124 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42 ((((𝑦 ∈ ℕ0𝑦 < (#‘𝐹)) ∧ (𝑆 ∈ ℕ0 ∧ (#‘𝐹) ∈ ℕ ∧ 𝑆 < (#‘𝐹))) ∧ ¬ 𝑆𝑦) → (#‘𝐹) ∈ ℕ)
10988adantr 480 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47 ((𝑦 ∈ ℕ0𝑦 < (#‘𝐹)) → 𝑦 ∈ ℂ)
110 subcl 10318 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47 ((𝑦 ∈ ℂ ∧ 𝑆 ∈ ℂ) → (𝑦𝑆) ∈ ℂ)
111109, 91, 110syl2an 493 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46 (((𝑦 ∈ ℕ0𝑦 < (#‘𝐹)) ∧ (𝑆 ∈ ℕ0 ∧ (#‘𝐹) ∈ ℕ ∧ 𝑆 < (#‘𝐹))) → (𝑦𝑆) ∈ ℂ)
11295, 111jca 553 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45 (((𝑦 ∈ ℕ0𝑦 < (#‘𝐹)) ∧ (𝑆 ∈ ℕ0 ∧ (#‘𝐹) ∈ ℕ ∧ 𝑆 < (#‘𝐹))) → ((#‘𝐹) ∈ ℂ ∧ (𝑦𝑆) ∈ ℂ))
113112adantr 480 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44 ((((𝑦 ∈ ℕ0𝑦 < (#‘𝐹)) ∧ (𝑆 ∈ ℕ0 ∧ (#‘𝐹) ∈ ℕ ∧ 𝑆 < (#‘𝐹))) ∧ ¬ 𝑆𝑦) → ((#‘𝐹) ∈ ℂ ∧ (𝑦𝑆) ∈ ℂ))
114 addcom 10260 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44 (((#‘𝐹) ∈ ℂ ∧ (𝑦𝑆) ∈ ℂ) → ((#‘𝐹) + (𝑦𝑆)) = ((𝑦𝑆) + (#‘𝐹)))
115113, 114syl 17 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43 ((((𝑦 ∈ ℕ0𝑦 < (#‘𝐹)) ∧ (𝑆 ∈ ℕ0 ∧ (#‘𝐹) ∈ ℕ ∧ 𝑆 < (#‘𝐹))) ∧ ¬ 𝑆𝑦) → ((#‘𝐹) + (𝑦𝑆)) = ((𝑦𝑆) + (#‘𝐹)))
11635adantr 480 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46 ((𝑦 ∈ ℕ0𝑦 < (#‘𝐹)) → 𝑦 ∈ ℝ)
117 nn0re 11339 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47 (𝑆 ∈ ℕ0𝑆 ∈ ℝ)
1181173ad2ant1 1102 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46 ((𝑆 ∈ ℕ0 ∧ (#‘𝐹) ∈ ℕ ∧ 𝑆 < (#‘𝐹)) → 𝑆 ∈ ℝ)
119 ltnle 10155 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47 ((𝑦 ∈ ℝ ∧ 𝑆 ∈ ℝ) → (𝑦 < 𝑆 ↔ ¬ 𝑆𝑦))
120 simpl 472 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49 ((𝑦 ∈ ℝ ∧ 𝑆 ∈ ℝ) → 𝑦 ∈ ℝ)
121 simpr 476 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49 ((𝑦 ∈ ℝ ∧ 𝑆 ∈ ℝ) → 𝑆 ∈ ℝ)
122120, 121sublt0d 10691 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48 ((𝑦 ∈ ℝ ∧ 𝑆 ∈ ℝ) → ((𝑦𝑆) < 0 ↔ 𝑦 < 𝑆))
123122biimprd 238 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47 ((𝑦 ∈ ℝ ∧ 𝑆 ∈ ℝ) → (𝑦 < 𝑆 → (𝑦𝑆) < 0))
124119, 123sylbird 250 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46 ((𝑦 ∈ ℝ ∧ 𝑆 ∈ ℝ) → (¬ 𝑆𝑦 → (𝑦𝑆) < 0))
125116, 118, 124syl2an 493 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45 (((𝑦 ∈ ℕ0𝑦 < (#‘𝐹)) ∧ (𝑆 ∈ ℕ0 ∧ (#‘𝐹) ∈ ℕ ∧ 𝑆 < (#‘𝐹))) → (¬ 𝑆𝑦 → (𝑦𝑆) < 0))
126125imp 444 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44 ((((𝑦 ∈ ℕ0𝑦 < (#‘𝐹)) ∧ (𝑆 ∈ ℕ0 ∧ (#‘𝐹) ∈ ℕ ∧ 𝑆 < (#‘𝐹))) ∧ ¬ 𝑆𝑦) → (𝑦𝑆) < 0)
127 resubcl 10383 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48 ((𝑦 ∈ ℝ ∧ 𝑆 ∈ ℝ) → (𝑦𝑆) ∈ ℝ)
128116, 118, 127syl2an 493 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47 (((𝑦 ∈ ℕ0𝑦 < (#‘𝐹)) ∧ (𝑆 ∈ ℕ0 ∧ (#‘𝐹) ∈ ℕ ∧ 𝑆 < (#‘𝐹))) → (𝑦𝑆) ∈ ℝ)
129373ad2ant2 1103 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48 ((𝑆 ∈ ℕ0 ∧ (#‘𝐹) ∈ ℕ ∧ 𝑆 < (#‘𝐹)) → (#‘𝐹) ∈ ℝ)
130129adantl 481 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47 (((𝑦 ∈ ℕ0𝑦 < (#‘𝐹)) ∧ (𝑆 ∈ ℕ0 ∧ (#‘𝐹) ∈ ℕ ∧ 𝑆 < (#‘𝐹))) → (#‘𝐹) ∈ ℝ)
131128, 130jca 553 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46 (((𝑦 ∈ ℕ0𝑦 < (#‘𝐹)) ∧ (𝑆 ∈ ℕ0 ∧ (#‘𝐹) ∈ ℕ ∧ 𝑆 < (#‘𝐹))) → ((𝑦𝑆) ∈ ℝ ∧ (#‘𝐹) ∈ ℝ))
132131adantr 480 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45 ((((𝑦 ∈ ℕ0𝑦 < (#‘𝐹)) ∧ (𝑆 ∈ ℕ0 ∧ (#‘𝐹) ∈ ℕ ∧ 𝑆 < (#‘𝐹))) ∧ ¬ 𝑆𝑦) → ((𝑦𝑆) ∈ ℝ ∧ (#‘𝐹) ∈ ℝ))
133 ltaddneg 10289 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45 (((𝑦𝑆) ∈ ℝ ∧ (#‘𝐹) ∈ ℝ) → ((𝑦𝑆) < 0 ↔ ((#‘𝐹) + (𝑦𝑆)) < (#‘𝐹)))
134132, 133syl 17 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44 ((((𝑦 ∈ ℕ0𝑦 < (#‘𝐹)) ∧ (𝑆 ∈ ℕ0 ∧ (#‘𝐹) ∈ ℕ ∧ 𝑆 < (#‘𝐹))) ∧ ¬ 𝑆𝑦) → ((𝑦𝑆) < 0 ↔ ((#‘𝐹) + (𝑦𝑆)) < (#‘𝐹)))
135126, 134mpbid 222 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43 ((((𝑦 ∈ ℕ0𝑦 < (#‘𝐹)) ∧ (𝑆 ∈ ℕ0 ∧ (#‘𝐹) ∈ ℕ ∧ 𝑆 < (#‘𝐹))) ∧ ¬ 𝑆𝑦) → ((#‘𝐹) + (𝑦𝑆)) < (#‘𝐹))
136115, 135eqbrtrrd 4709 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42 ((((𝑦 ∈ ℕ0𝑦 < (#‘𝐹)) ∧ (𝑆 ∈ ℕ0 ∧ (#‘𝐹) ∈ ℕ ∧ 𝑆 < (#‘𝐹))) ∧ ¬ 𝑆𝑦) → ((𝑦𝑆) + (#‘𝐹)) < (#‘𝐹))
137107, 108, 1363jca 1261 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41 ((((𝑦 ∈ ℕ0𝑦 < (#‘𝐹)) ∧ (𝑆 ∈ ℕ0 ∧ (#‘𝐹) ∈ ℕ ∧ 𝑆 < (#‘𝐹))) ∧ ¬ 𝑆𝑦) → (((𝑦𝑆) + (#‘𝐹)) ∈ ℕ0 ∧ (#‘𝐹) ∈ ℕ ∧ ((𝑦𝑆) + (#‘𝐹)) < (#‘𝐹)))
138137exp31 629 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40 ((𝑦 ∈ ℕ0𝑦 < (#‘𝐹)) → ((𝑆 ∈ ℕ0 ∧ (#‘𝐹) ∈ ℕ ∧ 𝑆 < (#‘𝐹)) → (¬ 𝑆𝑦 → (((𝑦𝑆) + (#‘𝐹)) ∈ ℕ0 ∧ (#‘𝐹) ∈ ℕ ∧ ((𝑦𝑆) + (#‘𝐹)) < (#‘𝐹)))))
1391383adant2 1100 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39 ((𝑦 ∈ ℕ0 ∧ (#‘𝐹) ∈ ℕ ∧ 𝑦 < (#‘𝐹)) → ((𝑆 ∈ ℕ0 ∧ (#‘𝐹) ∈ ℕ ∧ 𝑆 < (#‘𝐹)) → (¬ 𝑆𝑦 → (((𝑦𝑆) + (#‘𝐹)) ∈ ℕ0 ∧ (#‘𝐹) ∈ ℕ ∧ ((𝑦𝑆) + (#‘𝐹)) < (#‘𝐹)))))
14087, 139syl5bi 232 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38 ((𝑦 ∈ ℕ0 ∧ (#‘𝐹) ∈ ℕ ∧ 𝑦 < (#‘𝐹)) → (𝑆 ∈ (0..^(#‘𝐹)) → (¬ 𝑆𝑦 → (((𝑦𝑆) + (#‘𝐹)) ∈ ℕ0 ∧ (#‘𝐹) ∈ ℕ ∧ ((𝑦𝑆) + (#‘𝐹)) < (#‘𝐹)))))
141140adantld 482 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37 ((𝑦 ∈ ℕ0 ∧ (#‘𝐹) ∈ ℕ ∧ 𝑦 < (#‘𝐹)) → (((#‘𝐹) ∈ ℕ0𝑆 ∈ (0..^(#‘𝐹))) → (¬ 𝑆𝑦 → (((𝑦𝑆) + (#‘𝐹)) ∈ ℕ0 ∧ (#‘𝐹) ∈ ℕ ∧ ((𝑦𝑆) + (#‘𝐹)) < (#‘𝐹)))))
14231, 141sylbi 207 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36 (𝑦 ∈ (0..^(#‘𝐹)) → (((#‘𝐹) ∈ ℕ0𝑆 ∈ (0..^(#‘𝐹))) → (¬ 𝑆𝑦 → (((𝑦𝑆) + (#‘𝐹)) ∈ ℕ0 ∧ (#‘𝐹) ∈ ℕ ∧ ((𝑦𝑆) + (#‘𝐹)) < (#‘𝐹)))))
143142impcom 445 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35 ((((#‘𝐹) ∈ ℕ0𝑆 ∈ (0..^(#‘𝐹))) ∧ 𝑦 ∈ (0..^(#‘𝐹))) → (¬ 𝑆𝑦 → (((𝑦𝑆) + (#‘𝐹)) ∈ ℕ0 ∧ (#‘𝐹) ∈ ℕ ∧ ((𝑦𝑆) + (#‘𝐹)) < (#‘𝐹))))
144143impcom 445 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34 ((¬ 𝑆𝑦 ∧ (((#‘𝐹) ∈ ℕ0𝑆 ∈ (0..^(#‘𝐹))) ∧ 𝑦 ∈ (0..^(#‘𝐹)))) → (((𝑦𝑆) + (#‘𝐹)) ∈ ℕ0 ∧ (#‘𝐹) ∈ ℕ ∧ ((𝑦𝑆) + (#‘𝐹)) < (#‘𝐹)))
145 elfzo0 12548 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34 (((𝑦𝑆) + (#‘𝐹)) ∈ (0..^(#‘𝐹)) ↔ (((𝑦𝑆) + (#‘𝐹)) ∈ ℕ0 ∧ (#‘𝐹) ∈ ℕ ∧ ((𝑦𝑆) + (#‘𝐹)) < (#‘𝐹)))
146144, 145sylibr 224 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33 ((¬ 𝑆𝑦 ∧ (((#‘𝐹) ∈ ℕ0𝑆 ∈ (0..^(#‘𝐹))) ∧ 𝑦 ∈ (0..^(#‘𝐹)))) → ((𝑦𝑆) + (#‘𝐹)) ∈ (0..^(#‘𝐹)))
147 oveq1 6697 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36 (𝑧 = ((𝑦𝑆) + (#‘𝐹)) → (𝑧 + 𝑆) = (((𝑦𝑆) + (#‘𝐹)) + 𝑆))
148147oveq1d 6705 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35 (𝑧 = ((𝑦𝑆) + (#‘𝐹)) → ((𝑧 + 𝑆) mod (#‘𝐹)) = ((((𝑦𝑆) + (#‘𝐹)) + 𝑆) mod (#‘𝐹)))
14973adantr 480 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40 ((((#‘𝐹) ∈ ℕ0𝑆 ∈ (0..^(#‘𝐹))) ∧ 𝑦 ∈ (0..^(#‘𝐹))) → 𝑆 ∈ ℂ)
15075adantl 481 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40 ((((#‘𝐹) ∈ ℕ0𝑆 ∈ (0..^(#‘𝐹))) ∧ 𝑦 ∈ (0..^(#‘𝐹))) → 𝑦 ∈ ℂ)
151 nn0cn 11340 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41 ((#‘𝐹) ∈ ℕ0 → (#‘𝐹) ∈ ℂ)
152151ad2antrr 762 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40 ((((#‘𝐹) ∈ ℕ0𝑆 ∈ (0..^(#‘𝐹))) ∧ 𝑦 ∈ (0..^(#‘𝐹))) → (#‘𝐹) ∈ ℂ)
153149, 150, 1523jca 1261 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39 ((((#‘𝐹) ∈ ℕ0𝑆 ∈ (0..^(#‘𝐹))) ∧ 𝑦 ∈ (0..^(#‘𝐹))) → (𝑆 ∈ ℂ ∧ 𝑦 ∈ ℂ ∧ (#‘𝐹) ∈ ℂ))
154153adantl 481 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38 ((¬ 𝑆𝑦 ∧ (((#‘𝐹) ∈ ℕ0𝑆 ∈ (0..^(#‘𝐹))) ∧ 𝑦 ∈ (0..^(#‘𝐹)))) → (𝑆 ∈ ℂ ∧ 𝑦 ∈ ℂ ∧ (#‘𝐹) ∈ ℂ))
155 simp2 1082 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39 ((𝑆 ∈ ℂ ∧ 𝑦 ∈ ℂ ∧ (#‘𝐹) ∈ ℂ) → 𝑦 ∈ ℂ)
156 simp3 1083 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39 ((𝑆 ∈ ℂ ∧ 𝑦 ∈ ℂ ∧ (#‘𝐹) ∈ ℂ) → (#‘𝐹) ∈ ℂ)
157 simp1 1081 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40 ((𝑆 ∈ ℂ ∧ 𝑦 ∈ ℂ ∧ (#‘𝐹) ∈ ℂ) → 𝑆 ∈ ℂ)
158155, 157, 156nppcand 10455 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39 ((𝑆 ∈ ℂ ∧ 𝑦 ∈ ℂ ∧ (#‘𝐹) ∈ ℂ) → (((𝑦𝑆) + (#‘𝐹)) + 𝑆) = (𝑦 + (#‘𝐹)))
159155, 156, 158comraddd 10288 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38 ((𝑆 ∈ ℂ ∧ 𝑦 ∈ ℂ ∧ (#‘𝐹) ∈ ℂ) → (((𝑦𝑆) + (#‘𝐹)) + 𝑆) = ((#‘𝐹) + 𝑦))
160154, 159syl 17 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37 ((¬ 𝑆𝑦 ∧ (((#‘𝐹) ∈ ℕ0𝑆 ∈ (0..^(#‘𝐹))) ∧ 𝑦 ∈ (0..^(#‘𝐹)))) → (((𝑦𝑆) + (#‘𝐹)) + 𝑆) = ((#‘𝐹) + 𝑦))
161160oveq1d 6705 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36 ((¬ 𝑆𝑦 ∧ (((#‘𝐹) ∈ ℕ0𝑆 ∈ (0..^(#‘𝐹))) ∧ 𝑦 ∈ (0..^(#‘𝐹)))) → ((((𝑦𝑆) + (#‘𝐹)) + 𝑆) mod (#‘𝐹)) = (((#‘𝐹) + 𝑦) mod (#‘𝐹)))
16231biimpi 206 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38 (𝑦 ∈ (0..^(#‘𝐹)) → (𝑦 ∈ ℕ0 ∧ (#‘𝐹) ∈ ℕ ∧ 𝑦 < (#‘𝐹)))
163162ad2antll 765 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37 ((¬ 𝑆𝑦 ∧ (((#‘𝐹) ∈ ℕ0𝑆 ∈ (0..^(#‘𝐹))) ∧ 𝑦 ∈ (0..^(#‘𝐹)))) → (𝑦 ∈ ℕ0 ∧ (#‘𝐹) ∈ ℕ ∧ 𝑦 < (#‘𝐹)))
164 addmodid 12758 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37 ((𝑦 ∈ ℕ0 ∧ (#‘𝐹) ∈ ℕ ∧ 𝑦 < (#‘𝐹)) → (((#‘𝐹) + 𝑦) mod (#‘𝐹)) = 𝑦)
165163, 164syl 17 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36 ((¬ 𝑆𝑦 ∧ (((#‘𝐹) ∈ ℕ0𝑆 ∈ (0..^(#‘𝐹))) ∧ 𝑦 ∈ (0..^(#‘𝐹)))) → (((#‘𝐹) + 𝑦) mod (#‘𝐹)) = 𝑦)
166161, 165eqtrd 2685 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35 ((¬ 𝑆𝑦 ∧ (((#‘𝐹) ∈ ℕ0𝑆 ∈ (0..^(#‘𝐹))) ∧ 𝑦 ∈ (0..^(#‘𝐹)))) → ((((𝑦𝑆) + (#‘𝐹)) + 𝑆) mod (#‘𝐹)) = 𝑦)
167148, 166sylan9eqr 2707 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34 (((¬ 𝑆𝑦 ∧ (((#‘𝐹) ∈ ℕ0𝑆 ∈ (0..^(#‘𝐹))) ∧ 𝑦 ∈ (0..^(#‘𝐹)))) ∧ 𝑧 = ((𝑦𝑆) + (#‘𝐹))) → ((𝑧 + 𝑆) mod (#‘𝐹)) = 𝑦)
168167eqcomd 2657 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33 (((¬ 𝑆𝑦 ∧ (((#‘𝐹) ∈ ℕ0𝑆 ∈ (0..^(#‘𝐹))) ∧ 𝑦 ∈ (0..^(#‘𝐹)))) ∧ 𝑧 = ((𝑦𝑆) + (#‘𝐹))) → 𝑦 = ((𝑧 + 𝑆) mod (#‘𝐹)))
169146, 168rspcedeq2vd 3350 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32 ((¬ 𝑆𝑦 ∧ (((#‘𝐹) ∈ ℕ0𝑆 ∈ (0..^(#‘𝐹))) ∧ 𝑦 ∈ (0..^(#‘𝐹)))) → ∃𝑧 ∈ (0..^(#‘𝐹))𝑦 = ((𝑧 + 𝑆) mod (#‘𝐹)))
17086, 169pm2.61ian 848 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 ((((#‘𝐹) ∈ ℕ0𝑆 ∈ (0..^(#‘𝐹))) ∧ 𝑦 ∈ (0..^(#‘𝐹))) → ∃𝑧 ∈ (0..^(#‘𝐹))𝑦 = ((𝑧 + 𝑆) mod (#‘𝐹)))
17123rexeqi 3173 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 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 480 . . . . . . . . . . . . . . . . . . . . . . . 24 ((𝜑𝑖 ∈ dom 𝐼) → (𝑦 ∈ (0..^(#‘𝐹)) → ∃𝑧 ∈ (0..^𝑁)𝑦 = ((𝑧 + 𝑆) mod (#‘𝐹))))
179178imp 444 . . . . . . . . . . . . . . . . . . . . . . 23 (((𝜑𝑖 ∈ dom 𝐼) ∧ 𝑦 ∈ (0..^(#‘𝐹))) → ∃𝑧 ∈ (0..^𝑁)𝑦 = ((𝑧 + 𝑆) mod (#‘𝐹)))
180179adantr 480 . . . . . . . . . . . . . . . . . . . . . 22 ((((𝜑𝑖 ∈ dom 𝐼) ∧ 𝑦 ∈ (0..^(#‘𝐹))) ∧ 𝑖 = (𝐹𝑦)) → ∃𝑧 ∈ (0..^𝑁)𝑦 = ((𝑧 + 𝑆) mod (#‘𝐹)))
181 fveq2 6229 . . . . . . . . . . . . . . . . . . . . . . 23 (𝑦 = ((𝑧 + 𝑆) mod (#‘𝐹)) → (𝐹𝑦) = (𝐹‘((𝑧 + 𝑆) mod (#‘𝐹))))
182181reximi 3040 . . . . . . . . . . . . . . . . . . . . . 22 (∃𝑧 ∈ (0..^𝑁)𝑦 = ((𝑧 + 𝑆) mod (#‘𝐹)) → ∃𝑧 ∈ (0..^𝑁)(𝐹𝑦) = (𝐹‘((𝑧 + 𝑆) mod (#‘𝐹))))
183180, 182syl 17 . . . . . . . . . . . . . . . . . . . . 21 ((((𝜑𝑖 ∈ dom 𝐼) ∧ 𝑦 ∈ (0..^(#‘𝐹))) ∧ 𝑖 = (𝐹𝑦)) → ∃𝑧 ∈ (0..^𝑁)(𝐹𝑦) = (𝐹‘((𝑧 + 𝑆) mod (#‘𝐹))))
1843, 20, 213syl 18 . . . . . . . . . . . . . . . . . . . . . . . . 25 (𝜑𝐹 ∈ Word dom 𝐼)
185184ad3antrrr 766 . . . . . . . . . . . . . . . . . . . . . . . 24 ((((𝜑𝑖 ∈ dom 𝐼) ∧ 𝑦 ∈ (0..^(#‘𝐹))) ∧ 𝑖 = (𝐹𝑦)) → 𝐹 ∈ Word dom 𝐼)
186 elfzoelz 12509 . . . . . . . . . . . . . . . . . . . . . . . . . 26 (𝑆 ∈ (0..^𝑁) → 𝑆 ∈ ℤ)
1875, 186syl 17 . . . . . . . . . . . . . . . . . . . . . . . . 25 (𝜑𝑆 ∈ ℤ)
188187ad3antrrr 766 . . . . . . . . . . . . . . . . . . . . . . . 24 ((((𝜑𝑖 ∈ dom 𝐼) ∧ 𝑦 ∈ (0..^(#‘𝐹))) ∧ 𝑖 = (𝐹𝑦)) → 𝑆 ∈ ℤ)
18923eleq2i 2722 . . . . . . . . . . . . . . . . . . . . . . . . 25 (𝑧 ∈ (0..^𝑁) ↔ 𝑧 ∈ (0..^(#‘𝐹)))
190189biimpi 206 . . . . . . . . . . . . . . . . . . . . . . . 24 (𝑧 ∈ (0..^𝑁) → 𝑧 ∈ (0..^(#‘𝐹)))
191 cshwidxmod 13595 . . . . . . . . . . . . . . . . . . . . . . . 24 ((𝐹 ∈ Word dom 𝐼𝑆 ∈ ℤ ∧ 𝑧 ∈ (0..^(#‘𝐹))) → ((𝐹 cyclShift 𝑆)‘𝑧) = (𝐹‘((𝑧 + 𝑆) mod (#‘𝐹))))
192185, 188, 190, 191syl2an3an 1426 . . . . . . . . . . . . . . . . . . . . . . 23 (((((𝜑𝑖 ∈ dom 𝐼) ∧ 𝑦 ∈ (0..^(#‘𝐹))) ∧ 𝑖 = (𝐹𝑦)) ∧ 𝑧 ∈ (0..^𝑁)) → ((𝐹 cyclShift 𝑆)‘𝑧) = (𝐹‘((𝑧 + 𝑆) mod (#‘𝐹))))
193192eqeq2d 2661 . . . . . . . . . . . . . . . . . . . . . 22 (((((𝜑𝑖 ∈ dom 𝐼) ∧ 𝑦 ∈ (0..^(#‘𝐹))) ∧ 𝑖 = (𝐹𝑦)) ∧ 𝑧 ∈ (0..^𝑁)) → ((𝐹𝑦) = ((𝐹 cyclShift 𝑆)‘𝑧) ↔ (𝐹𝑦) = (𝐹‘((𝑧 + 𝑆) mod (#‘𝐹)))))
194193rexbidva 3078 . . . . . . . . . . . . . . . . . . . . 21 ((((𝜑𝑖 ∈ dom 𝐼) ∧ 𝑦 ∈ (0..^(#‘𝐹))) ∧ 𝑖 = (𝐹𝑦)) → (∃𝑧 ∈ (0..^𝑁)(𝐹𝑦) = ((𝐹 cyclShift 𝑆)‘𝑧) ↔ ∃𝑧 ∈ (0..^𝑁)(𝐹𝑦) = (𝐹‘((𝑧 + 𝑆) mod (#‘𝐹)))))
195183, 194mpbird 247 . . . . . . . . . . . . . . . . . . . 20 ((((𝜑𝑖 ∈ dom 𝐼) ∧ 𝑦 ∈ (0..^(#‘𝐹))) ∧ 𝑖 = (𝐹𝑦)) → ∃𝑧 ∈ (0..^𝑁)(𝐹𝑦) = ((𝐹 cyclShift 𝑆)‘𝑧))
1961, 2, 3, 4, 5, 6crctcshlem2 26766 . . . . . . . . . . . . . . . . . . . . . . 23 (𝜑 → (#‘𝐻) = 𝑁)
197196oveq2d 6706 . . . . . . . . . . . . . . . . . . . . . 22 (𝜑 → (0..^(#‘𝐻)) = (0..^𝑁))
198197ad3antrrr 766 . . . . . . . . . . . . . . . . . . . . 21 ((((𝜑𝑖 ∈ dom 𝐼) ∧ 𝑦 ∈ (0..^(#‘𝐹))) ∧ 𝑖 = (𝐹𝑦)) → (0..^(#‘𝐻)) = (0..^𝑁))
199 simpr 476 . . . . . . . . . . . . . . . . . . . . . 22 ((((𝜑𝑖 ∈ dom 𝐼) ∧ 𝑦 ∈ (0..^(#‘𝐹))) ∧ 𝑖 = (𝐹𝑦)) → 𝑖 = (𝐹𝑦))
2006fveq1i 6230 . . . . . . . . . . . . . . . . . . . . . . 23 (𝐻𝑧) = ((𝐹 cyclShift 𝑆)‘𝑧)
201200a1i 11 . . . . . . . . . . . . . . . . . . . . . 22 ((((𝜑𝑖 ∈ dom 𝐼) ∧ 𝑦 ∈ (0..^(#‘𝐹))) ∧ 𝑖 = (𝐹𝑦)) → (𝐻𝑧) = ((𝐹 cyclShift 𝑆)‘𝑧))
202199, 201eqeq12d 2666 . . . . . . . . . . . . . . . . . . . . 21 ((((𝜑𝑖 ∈ dom 𝐼) ∧ 𝑦 ∈ (0..^(#‘𝐹))) ∧ 𝑖 = (𝐹𝑦)) → (𝑖 = (𝐻𝑧) ↔ (𝐹𝑦) = ((𝐹 cyclShift 𝑆)‘𝑧)))
203198, 202rexeqbidv 3183 . . . . . . . . . . . . . . . . . . . 20 ((((𝜑𝑖 ∈ dom 𝐼) ∧ 𝑦 ∈ (0..^(#‘𝐹))) ∧ 𝑖 = (𝐹𝑦)) → (∃𝑧 ∈ (0..^(#‘𝐻))𝑖 = (𝐻𝑧) ↔ ∃𝑧 ∈ (0..^𝑁)(𝐹𝑦) = ((𝐹 cyclShift 𝑆)‘𝑧)))
204195, 203mpbird 247 . . . . . . . . . . . . . . . . . . 19 ((((𝜑𝑖 ∈ dom 𝐼) ∧ 𝑦 ∈ (0..^(#‘𝐹))) ∧ 𝑖 = (𝐹𝑦)) → ∃𝑧 ∈ (0..^(#‘𝐻))𝑖 = (𝐻𝑧))
205204ex 449 . . . . . . . . . . . . . . . . . 18 (((𝜑𝑖 ∈ dom 𝐼) ∧ 𝑦 ∈ (0..^(#‘𝐹))) → (𝑖 = (𝐹𝑦) → ∃𝑧 ∈ (0..^(#‘𝐻))𝑖 = (𝐻𝑧)))
206205rexlimdva 3060 . . . . . . . . . . . . . . . . 17 ((𝜑𝑖 ∈ dom 𝐼) → (∃𝑦 ∈ (0..^(#‘𝐹))𝑖 = (𝐹𝑦) → ∃𝑧 ∈ (0..^(#‘𝐻))𝑖 = (𝐻𝑧)))
207206ralimdva 2991 . . . . . . . . . . . . . . . 16 (𝜑 → (∀𝑖 ∈ dom 𝐼𝑦 ∈ (0..^(#‘𝐹))𝑖 = (𝐹𝑦) → ∀𝑖 ∈ dom 𝐼𝑧 ∈ (0..^(#‘𝐻))𝑖 = (𝐻𝑧)))
208207impcom 445 . . . . . . . . . . . . . . 15 ((∀𝑖 ∈ dom 𝐼𝑦 ∈ (0..^(#‘𝐹))𝑖 = (𝐹𝑦) ∧ 𝜑) → ∀𝑖 ∈ dom 𝐼𝑧 ∈ (0..^(#‘𝐻))𝑖 = (𝐻𝑧))
209208anim1i 591 . . . . . . . . . . . . . 14 (((∀𝑖 ∈ dom 𝐼𝑦 ∈ (0..^(#‘𝐹))𝑖 = (𝐹𝑦) ∧ 𝜑) ∧ 𝐻:(0..^(#‘𝐻))⟶dom 𝐼) → (∀𝑖 ∈ dom 𝐼𝑧 ∈ (0..^(#‘𝐻))𝑖 = (𝐻𝑧) ∧ 𝐻:(0..^(#‘𝐻))⟶dom 𝐼))
210209ancomd 466 . . . . . . . . . . . . 13 (((∀𝑖 ∈ dom 𝐼𝑦 ∈ (0..^(#‘𝐹))𝑖 = (𝐹𝑦) ∧ 𝜑) ∧ 𝐻:(0..^(#‘𝐻))⟶dom 𝐼) → (𝐻:(0..^(#‘𝐻))⟶dom 𝐼 ∧ ∀𝑖 ∈ dom 𝐼𝑧 ∈ (0..^(#‘𝐻))𝑖 = (𝐻𝑧)))
211 dffo3 6414 . . . . . . . . . . . . 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 659 . . . . . . . . . 10 (𝐹:(0..^(#‘𝐹))–onto→dom 𝐼 → (𝜑 → (𝐻:(0..^(#‘𝐻))⟶dom 𝐼𝐻:(0..^(#‘𝐻))–onto→dom 𝐼)))
21518, 214simplbiim 659 . . . . . . . . 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 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 703 . . 3 (𝜑 → (𝐻(Trails‘𝐺)𝑄𝐻:(0..^(#‘𝐻))–onto→dom 𝐼))
2222iseupth 27179 . . 3 (𝐻(EulerPaths‘𝐺)𝑄 ↔ (𝐻(Trails‘𝐺)𝑄𝐻:(0..^(#‘𝐻))–onto→dom 𝐼))
223221, 222sylibr 224 . 2 (𝜑𝐻(EulerPaths‘𝐺)𝑄)
2241, 2, 3, 4, 5, 6, 7crctcsh 26772 . 2 (𝜑𝐻(Circuits‘𝐺)𝑄)
225223, 224jca 553 1 (𝜑 → (𝐻(EulerPaths‘𝐺)𝑄𝐻(Circuits‘𝐺)𝑄))
Colors of variables: wff setvar class
Syntax hints:  ¬ wn 3  wi 4  wb 196  wa 383  w3a 1054   = wceq 1523  wcel 2030  wral 2941  wrex 2942  ifcif 4119   class class class wbr 4685  cmpt 4762  dom cdm 5143  wf 5922  1-1wf1 5923  ontowfo 5924  1-1-ontowf1o 5925  cfv 5926  (class class class)co 6690  cc 9972  cr 9973  0cc0 9974   + caddc 9977   < clt 10112  cle 10113  cmin 10304  cn 11058  0cn0 11330  cz 11415  ...cfz 12364  ..^cfzo 12504   mod cmo 12708  #chash 13157  Word cword 13323   cyclShift ccsh 13580  Vtxcvtx 25919  iEdgciedg 25920  Walkscwlks 26548  Trailsctrls 26643  Circuitsccrcts 26735  EulerPathsceupth 27175
This theorem was proved from axioms:  ax-mp 5  ax-1 6  ax-2 7  ax-3 8  ax-gen 1762  ax-4 1777  ax-5 1879  ax-6 1945  ax-7 1981  ax-8 2032  ax-9 2039  ax-10 2059  ax-11 2074  ax-12 2087  ax-13 2282  ax-ext 2631  ax-rep 4804  ax-sep 4814  ax-nul 4822  ax-pow 4873  ax-pr 4936  ax-un 6991  ax-cnex 10030  ax-resscn 10031  ax-1cn 10032  ax-icn 10033  ax-addcl 10034  ax-addrcl 10035  ax-mulcl 10036  ax-mulrcl 10037  ax-mulcom 10038  ax-addass 10039  ax-mulass 10040  ax-distr 10041  ax-i2m1 10042  ax-1ne0 10043  ax-1rid 10044  ax-rnegex 10045  ax-rrecex 10046  ax-cnre 10047  ax-pre-lttri 10048  ax-pre-lttrn 10049  ax-pre-ltadd 10050  ax-pre-mulgt0 10051  ax-pre-sup 10052
This theorem depends on definitions:  df-bi 197  df-or 384  df-an 385  df-ifp 1033  df-3or 1055  df-3an 1056  df-tru 1526  df-ex 1745  df-nf 1750  df-sb 1938  df-eu 2502  df-mo 2503  df-clab 2638  df-cleq 2644  df-clel 2647  df-nfc 2782  df-ne 2824  df-nel 2927  df-ral 2946  df-rex 2947  df-reu 2948  df-rmo 2949  df-rab 2950  df-v 3233  df-sbc 3469  df-csb 3567  df-dif 3610  df-un 3612  df-in 3614  df-ss 3621  df-pss 3623  df-nul 3949  df-if 4120  df-pw 4193  df-sn 4211  df-pr 4213  df-tp 4215  df-op 4217  df-uni 4469  df-int 4508  df-iun 4554  df-br 4686  df-opab 4746  df-mpt 4763  df-tr 4786  df-id 5053  df-eprel 5058  df-po 5064  df-so 5065  df-fr 5102  df-we 5104  df-xp 5149  df-rel 5150  df-cnv 5151  df-co 5152  df-dm 5153  df-rn 5154  df-res 5155  df-ima 5156  df-pred 5718  df-ord 5764  df-on 5765  df-lim 5766  df-suc 5767  df-iota 5889  df-fun 5928  df-fn 5929  df-f 5930  df-f1 5931  df-fo 5932  df-f1o 5933  df-fv 5934  df-riota 6651  df-ov 6693  df-oprab 6694  df-mpt2 6695  df-om 7108  df-1st 7210  df-2nd 7211  df-wrecs 7452  df-recs 7513  df-rdg 7551  df-1o 7605  df-oadd 7609  df-er 7787  df-map 7901  df-pm 7902  df-en 7998  df-dom 7999  df-sdom 8000  df-fin 8001  df-sup 8389  df-inf 8390  df-card 8803  df-pnf 10114  df-mnf 10115  df-xr 10116  df-ltxr 10117  df-le 10118  df-sub 10306  df-neg 10307  df-div 10723  df-nn 11059  df-2 11117  df-n0 11331  df-z 11416  df-uz 11726  df-rp 11871  df-ico 12219  df-fz 12365  df-fzo 12505  df-fl 12633  df-mod 12709  df-hash 13158  df-word 13331  df-concat 13333  df-substr 13335  df-csh 13581  df-wlks 26551  df-trls 26645  df-crcts 26737  df-eupth 27176
This theorem is referenced by:  eucrct2eupth  27223
  Copyright terms: Public domain W3C validator