Metamath Proof Explorer


Theorem eucalgcvga

Description: Once Euclid's Algorithm halts after N steps, the second element of the state remains 0 . (Contributed by Paul Chapman, 22-Jun-2011) (Revised by Mario Carneiro, 29-May-2014)

Ref Expression
Hypotheses eucalgval.1 ⊢ E = x ∈ ℕ 0 , y ∈ ℕ 0 ⟼ if y = 0 x y y x mod y
eucalg.2 ⊢ R = seq 0 E ∘ 1 st ℕ 0 × A
eucalgcvga.3 ⊢ N = 2 nd ⁡ A
Assertion eucalgcvga ⊢ A ∈ ℕ 0 × ℕ 0 → K ∈ ℤ ≥ N → 2 nd ⁡ R ⁡ K = 0

Proof

Step Hyp Ref Expression
1 eucalgval.1 ⊢ E = x ∈ ℕ 0 , y ∈ ℕ 0 ⟼ if y = 0 x y y x mod y
2 eucalg.2 ⊢ R = seq 0 E ∘ 1 st ℕ 0 × A
3 eucalgcvga.3 ⊢ N = 2 nd ⁡ A
4 xp2nd ⊢ A ∈ ℕ 0 × ℕ 0 → 2 nd ⁡ A ∈ ℕ 0
5 3 4 eqeltrid ⊢ A ∈ ℕ 0 × ℕ 0 → N ∈ ℕ 0
6 eluznn0 ⊢ N ∈ ℕ 0 ∧ K ∈ ℤ ≥ N → K ∈ ℕ 0
7 5 6 sylan ⊢ A ∈ ℕ 0 × ℕ 0 ∧ K ∈ ℤ ≥ N → K ∈ ℕ 0
8 nn0uz ⊢ ℕ 0 = ℤ ≥ 0
9 0zd ⊢ A ∈ ℕ 0 × ℕ 0 → 0 ∈ ℤ
10 id ⊢ A ∈ ℕ 0 × ℕ 0 → A ∈ ℕ 0 × ℕ 0
11 1 eucalgf ⊢ E : ℕ 0 × ℕ 0 ⟶ ℕ 0 × ℕ 0
12 11 a1i ⊢ A ∈ ℕ 0 × ℕ 0 → E : ℕ 0 × ℕ 0 ⟶ ℕ 0 × ℕ 0
13 8 2 9 10 12 algrf ⊢ A ∈ ℕ 0 × ℕ 0 → R : ℕ 0 ⟶ ℕ 0 × ℕ 0
14 13 ffvelcdmda ⊢ A ∈ ℕ 0 × ℕ 0 ∧ K ∈ ℕ 0 → R ⁡ K ∈ ℕ 0 × ℕ 0
15 7 14 syldan ⊢ A ∈ ℕ 0 × ℕ 0 ∧ K ∈ ℤ ≥ N → R ⁡ K ∈ ℕ 0 × ℕ 0
16 15 fvresd ⊢ A ∈ ℕ 0 × ℕ 0 ∧ K ∈ ℤ ≥ N → 2 nd ↾ ℕ 0 × ℕ 0 ⁡ R ⁡ K = 2 nd ⁡ R ⁡ K
17 simpl ⊢ A ∈ ℕ 0 × ℕ 0 ∧ K ∈ ℤ ≥ N → A ∈ ℕ 0 × ℕ 0
18 fvres ⊢ A ∈ ℕ 0 × ℕ 0 → 2 nd ↾ ℕ 0 × ℕ 0 ⁡ A = 2 nd ⁡ A
19 18 3 eqtr4di ⊢ A ∈ ℕ 0 × ℕ 0 → 2 nd ↾ ℕ 0 × ℕ 0 ⁡ A = N
20 19 fveq2d ⊢ A ∈ ℕ 0 × ℕ 0 → ℤ ≥ 2 nd ↾ ℕ 0 × ℕ 0 ⁡ A = ℤ ≥ N
21 20 eleq2d ⊢ A ∈ ℕ 0 × ℕ 0 → K ∈ ℤ ≥ 2 nd ↾ ℕ 0 × ℕ 0 ⁡ A ↔ K ∈ ℤ ≥ N
22 21 biimpar ⊢ A ∈ ℕ 0 × ℕ 0 ∧ K ∈ ℤ ≥ N → K ∈ ℤ ≥ 2 nd ↾ ℕ 0 × ℕ 0 ⁡ A
23 f2ndres ⊢ 2 nd ↾ ℕ 0 × ℕ 0 : ℕ 0 × ℕ 0 ⟶ ℕ 0
24 1 eucalglt ⊢ z ∈ ℕ 0 × ℕ 0 → 2 nd ⁡ E ⁡ z ≠ 0 → 2 nd ⁡ E ⁡ z < 2 nd ⁡ z
25 11 ffvelcdmi ⊢ z ∈ ℕ 0 × ℕ 0 → E ⁡ z ∈ ℕ 0 × ℕ 0
26 25 fvresd ⊢ z ∈ ℕ 0 × ℕ 0 → 2 nd ↾ ℕ 0 × ℕ 0 ⁡ E ⁡ z = 2 nd ⁡ E ⁡ z
27 26 neeq1d ⊢ z ∈ ℕ 0 × ℕ 0 → 2 nd ↾ ℕ 0 × ℕ 0 ⁡ E ⁡ z ≠ 0 ↔ 2 nd ⁡ E ⁡ z ≠ 0
28 fvres ⊢ z ∈ ℕ 0 × ℕ 0 → 2 nd ↾ ℕ 0 × ℕ 0 ⁡ z = 2 nd ⁡ z
29 26 28 breq12d ⊢ z ∈ ℕ 0 × ℕ 0 → 2 nd ↾ ℕ 0 × ℕ 0 ⁡ E ⁡ z < 2 nd ↾ ℕ 0 × ℕ 0 ⁡ z ↔ 2 nd ⁡ E ⁡ z < 2 nd ⁡ z
30 24 27 29 3imtr4d ⊢ z ∈ ℕ 0 × ℕ 0 → 2 nd ↾ ℕ 0 × ℕ 0 ⁡ E ⁡ z ≠ 0 → 2 nd ↾ ℕ 0 × ℕ 0 ⁡ E ⁡ z < 2 nd ↾ ℕ 0 × ℕ 0 ⁡ z
31 eqid ⊢ 2 nd ↾ ℕ 0 × ℕ 0 ⁡ A = 2 nd ↾ ℕ 0 × ℕ 0 ⁡ A
32 11 2 23 30 31 algcvga ⊢ A ∈ ℕ 0 × ℕ 0 → K ∈ ℤ ≥ 2 nd ↾ ℕ 0 × ℕ 0 ⁡ A → 2 nd ↾ ℕ 0 × ℕ 0 ⁡ R ⁡ K = 0
33 17 22 32 sylc ⊢ A ∈ ℕ 0 × ℕ 0 ∧ K ∈ ℤ ≥ N → 2 nd ↾ ℕ 0 × ℕ 0 ⁡ R ⁡ K = 0
34 16 33 eqtr3d ⊢ A ∈ ℕ 0 × ℕ 0 ∧ K ∈ ℤ ≥ N → 2 nd ⁡ R ⁡ K = 0
35 34 ex ⊢ A ∈ ℕ 0 × ℕ 0 → K ∈ ℤ ≥ N → 2 nd ⁡ R ⁡ K = 0