ILE Home Intuitionistic Logic Explorer < Previous   Next >
Nearby theorems
Mirrors  >  Home  >  ILE Home  >  Th. List  >  eucalglt GIF version

Theorem eucalglt 11772
Description: The second member of the state decreases with each iteration of the step function 𝐸 for Euclid's Algorithm. (Contributed by Paul Chapman, 31-Mar-2011.) (Revised by Mario Carneiro, 29-May-2014.)
Hypothesis
Ref Expression
eucalgval.1 𝐸 = (𝑥 ∈ ℕ0, 𝑦 ∈ ℕ0 ↦ if(𝑦 = 0, ⟨𝑥, 𝑦⟩, ⟨𝑦, (𝑥 mod 𝑦)⟩))
Assertion
Ref Expression
eucalglt (𝑋 ∈ (ℕ0 × ℕ0) → ((2nd ‘(𝐸𝑋)) ≠ 0 → (2nd ‘(𝐸𝑋)) < (2nd𝑋)))
Distinct variable group:   𝑥,𝑦,𝑋
Allowed substitution hints:   𝐸(𝑥,𝑦)

Proof of Theorem eucalglt
StepHypRef Expression
1 eucalgval.1 . . . . . . . 8 𝐸 = (𝑥 ∈ ℕ0, 𝑦 ∈ ℕ0 ↦ if(𝑦 = 0, ⟨𝑥, 𝑦⟩, ⟨𝑦, (𝑥 mod 𝑦)⟩))
21eucalgval 11769 . . . . . . 7 (𝑋 ∈ (ℕ0 × ℕ0) → (𝐸𝑋) = if((2nd𝑋) = 0, 𝑋, ⟨(2nd𝑋), ( mod ‘𝑋)⟩))
32adantr 274 . . . . . 6 ((𝑋 ∈ (ℕ0 × ℕ0) ∧ (2nd ‘(𝐸𝑋)) ≠ 0) → (𝐸𝑋) = if((2nd𝑋) = 0, 𝑋, ⟨(2nd𝑋), ( mod ‘𝑋)⟩))
4 simpr 109 . . . . . . . 8 ((𝑋 ∈ (ℕ0 × ℕ0) ∧ (2nd ‘(𝐸𝑋)) ≠ 0) → (2nd ‘(𝐸𝑋)) ≠ 0)
5 iftrue 3483 . . . . . . . . . . . . 13 ((2nd𝑋) = 0 → if((2nd𝑋) = 0, 𝑋, ⟨(2nd𝑋), ( mod ‘𝑋)⟩) = 𝑋)
65eqeq2d 2152 . . . . . . . . . . . 12 ((2nd𝑋) = 0 → ((𝐸𝑋) = if((2nd𝑋) = 0, 𝑋, ⟨(2nd𝑋), ( mod ‘𝑋)⟩) ↔ (𝐸𝑋) = 𝑋))
7 fveq2 5428 . . . . . . . . . . . 12 ((𝐸𝑋) = 𝑋 → (2nd ‘(𝐸𝑋)) = (2nd𝑋))
86, 7syl6bi 162 . . . . . . . . . . 11 ((2nd𝑋) = 0 → ((𝐸𝑋) = if((2nd𝑋) = 0, 𝑋, ⟨(2nd𝑋), ( mod ‘𝑋)⟩) → (2nd ‘(𝐸𝑋)) = (2nd𝑋)))
9 eqeq2 2150 . . . . . . . . . . 11 ((2nd𝑋) = 0 → ((2nd ‘(𝐸𝑋)) = (2nd𝑋) ↔ (2nd ‘(𝐸𝑋)) = 0))
108, 9sylibd 148 . . . . . . . . . 10 ((2nd𝑋) = 0 → ((𝐸𝑋) = if((2nd𝑋) = 0, 𝑋, ⟨(2nd𝑋), ( mod ‘𝑋)⟩) → (2nd ‘(𝐸𝑋)) = 0))
113, 10syl5com 29 . . . . . . . . 9 ((𝑋 ∈ (ℕ0 × ℕ0) ∧ (2nd ‘(𝐸𝑋)) ≠ 0) → ((2nd𝑋) = 0 → (2nd ‘(𝐸𝑋)) = 0))
1211necon3ad 2351 . . . . . . . 8 ((𝑋 ∈ (ℕ0 × ℕ0) ∧ (2nd ‘(𝐸𝑋)) ≠ 0) → ((2nd ‘(𝐸𝑋)) ≠ 0 → ¬ (2nd𝑋) = 0))
134, 12mpd 13 . . . . . . 7 ((𝑋 ∈ (ℕ0 × ℕ0) ∧ (2nd ‘(𝐸𝑋)) ≠ 0) → ¬ (2nd𝑋) = 0)
1413iffalsed 3488 . . . . . 6 ((𝑋 ∈ (ℕ0 × ℕ0) ∧ (2nd ‘(𝐸𝑋)) ≠ 0) → if((2nd𝑋) = 0, 𝑋, ⟨(2nd𝑋), ( mod ‘𝑋)⟩) = ⟨(2nd𝑋), ( mod ‘𝑋)⟩)
153, 14eqtrd 2173 . . . . 5 ((𝑋 ∈ (ℕ0 × ℕ0) ∧ (2nd ‘(𝐸𝑋)) ≠ 0) → (𝐸𝑋) = ⟨(2nd𝑋), ( mod ‘𝑋)⟩)
1615fveq2d 5432 . . . 4 ((𝑋 ∈ (ℕ0 × ℕ0) ∧ (2nd ‘(𝐸𝑋)) ≠ 0) → (2nd ‘(𝐸𝑋)) = (2nd ‘⟨(2nd𝑋), ( mod ‘𝑋)⟩))
17 xp2nd 6071 . . . . . 6 (𝑋 ∈ (ℕ0 × ℕ0) → (2nd𝑋) ∈ ℕ0)
1817adantr 274 . . . . 5 ((𝑋 ∈ (ℕ0 × ℕ0) ∧ (2nd ‘(𝐸𝑋)) ≠ 0) → (2nd𝑋) ∈ ℕ0)
19 1st2nd2 6080 . . . . . . . . 9 (𝑋 ∈ (ℕ0 × ℕ0) → 𝑋 = ⟨(1st𝑋), (2nd𝑋)⟩)
2019adantr 274 . . . . . . . 8 ((𝑋 ∈ (ℕ0 × ℕ0) ∧ (2nd ‘(𝐸𝑋)) ≠ 0) → 𝑋 = ⟨(1st𝑋), (2nd𝑋)⟩)
2120fveq2d 5432 . . . . . . 7 ((𝑋 ∈ (ℕ0 × ℕ0) ∧ (2nd ‘(𝐸𝑋)) ≠ 0) → ( mod ‘𝑋) = ( mod ‘⟨(1st𝑋), (2nd𝑋)⟩))
22 df-ov 5784 . . . . . . 7 ((1st𝑋) mod (2nd𝑋)) = ( mod ‘⟨(1st𝑋), (2nd𝑋)⟩)
2321, 22eqtr4di 2191 . . . . . 6 ((𝑋 ∈ (ℕ0 × ℕ0) ∧ (2nd ‘(𝐸𝑋)) ≠ 0) → ( mod ‘𝑋) = ((1st𝑋) mod (2nd𝑋)))
24 xp1st 6070 . . . . . . . . 9 (𝑋 ∈ (ℕ0 × ℕ0) → (1st𝑋) ∈ ℕ0)
2524adantr 274 . . . . . . . 8 ((𝑋 ∈ (ℕ0 × ℕ0) ∧ (2nd ‘(𝐸𝑋)) ≠ 0) → (1st𝑋) ∈ ℕ0)
2625nn0zd 9194 . . . . . . 7 ((𝑋 ∈ (ℕ0 × ℕ0) ∧ (2nd ‘(𝐸𝑋)) ≠ 0) → (1st𝑋) ∈ ℤ)
2713neqned 2316 . . . . . . . 8 ((𝑋 ∈ (ℕ0 × ℕ0) ∧ (2nd ‘(𝐸𝑋)) ≠ 0) → (2nd𝑋) ≠ 0)
28 elnnne0 9014 . . . . . . . 8 ((2nd𝑋) ∈ ℕ ↔ ((2nd𝑋) ∈ ℕ0 ∧ (2nd𝑋) ≠ 0))
2918, 27, 28sylanbrc 414 . . . . . . 7 ((𝑋 ∈ (ℕ0 × ℕ0) ∧ (2nd ‘(𝐸𝑋)) ≠ 0) → (2nd𝑋) ∈ ℕ)
3026, 29zmodcld 10148 . . . . . 6 ((𝑋 ∈ (ℕ0 × ℕ0) ∧ (2nd ‘(𝐸𝑋)) ≠ 0) → ((1st𝑋) mod (2nd𝑋)) ∈ ℕ0)
3123, 30eqeltrd 2217 . . . . 5 ((𝑋 ∈ (ℕ0 × ℕ0) ∧ (2nd ‘(𝐸𝑋)) ≠ 0) → ( mod ‘𝑋) ∈ ℕ0)
32 op2ndg 6056 . . . . 5 (((2nd𝑋) ∈ ℕ0 ∧ ( mod ‘𝑋) ∈ ℕ0) → (2nd ‘⟨(2nd𝑋), ( mod ‘𝑋)⟩) = ( mod ‘𝑋))
3318, 31, 32syl2anc 409 . . . 4 ((𝑋 ∈ (ℕ0 × ℕ0) ∧ (2nd ‘(𝐸𝑋)) ≠ 0) → (2nd ‘⟨(2nd𝑋), ( mod ‘𝑋)⟩) = ( mod ‘𝑋))
3416, 33, 233eqtrd 2177 . . 3 ((𝑋 ∈ (ℕ0 × ℕ0) ∧ (2nd ‘(𝐸𝑋)) ≠ 0) → (2nd ‘(𝐸𝑋)) = ((1st𝑋) mod (2nd𝑋)))
35 zq 9444 . . . . 5 ((1st𝑋) ∈ ℤ → (1st𝑋) ∈ ℚ)
3626, 35syl 14 . . . 4 ((𝑋 ∈ (ℕ0 × ℕ0) ∧ (2nd ‘(𝐸𝑋)) ≠ 0) → (1st𝑋) ∈ ℚ)
3718nn0zd 9194 . . . . 5 ((𝑋 ∈ (ℕ0 × ℕ0) ∧ (2nd ‘(𝐸𝑋)) ≠ 0) → (2nd𝑋) ∈ ℤ)
38 zq 9444 . . . . 5 ((2nd𝑋) ∈ ℤ → (2nd𝑋) ∈ ℚ)
3937, 38syl 14 . . . 4 ((𝑋 ∈ (ℕ0 × ℕ0) ∧ (2nd ‘(𝐸𝑋)) ≠ 0) → (2nd𝑋) ∈ ℚ)
4029nngt0d 8787 . . . 4 ((𝑋 ∈ (ℕ0 × ℕ0) ∧ (2nd ‘(𝐸𝑋)) ≠ 0) → 0 < (2nd𝑋))
41 modqlt 10136 . . . 4 (((1st𝑋) ∈ ℚ ∧ (2nd𝑋) ∈ ℚ ∧ 0 < (2nd𝑋)) → ((1st𝑋) mod (2nd𝑋)) < (2nd𝑋))
4236, 39, 40, 41syl3anc 1217 . . 3 ((𝑋 ∈ (ℕ0 × ℕ0) ∧ (2nd ‘(𝐸𝑋)) ≠ 0) → ((1st𝑋) mod (2nd𝑋)) < (2nd𝑋))
4334, 42eqbrtrd 3957 . 2 ((𝑋 ∈ (ℕ0 × ℕ0) ∧ (2nd ‘(𝐸𝑋)) ≠ 0) → (2nd ‘(𝐸𝑋)) < (2nd𝑋))
4443ex 114 1 (𝑋 ∈ (ℕ0 × ℕ0) → ((2nd ‘(𝐸𝑋)) ≠ 0 → (2nd ‘(𝐸𝑋)) < (2nd𝑋)))
Colors of variables: wff set class
Syntax hints:  ¬ wn 3  wi 4  wa 103   = wceq 1332  wcel 1481  wne 2309  ifcif 3478  cop 3534   class class class wbr 3936   × cxp 4544  cfv 5130  (class class class)co 5781  cmpo 5783  1st c1st 6043  2nd c2nd 6044  0cc0 7643   < clt 7823  cn 8743  0cn0 9000  cz 9077  cq 9437   mod cmo 10125
This theorem was proved from axioms:  ax-mp 5  ax-1 6  ax-2 7  ax-ia1 105  ax-ia2 106  ax-ia3 107  ax-in1 604  ax-in2 605  ax-io 699  ax-5 1424  ax-7 1425  ax-gen 1426  ax-ie1 1470  ax-ie2 1471  ax-8 1483  ax-10 1484  ax-11 1485  ax-i12 1486  ax-bndl 1487  ax-4 1488  ax-13 1492  ax-14 1493  ax-17 1507  ax-i9 1511  ax-ial 1515  ax-i5r 1516  ax-ext 2122  ax-sep 4053  ax-pow 4105  ax-pr 4138  ax-un 4362  ax-setind 4459  ax-cnex 7734  ax-resscn 7735  ax-1cn 7736  ax-1re 7737  ax-icn 7738  ax-addcl 7739  ax-addrcl 7740  ax-mulcl 7741  ax-mulrcl 7742  ax-addcom 7743  ax-mulcom 7744  ax-addass 7745  ax-mulass 7746  ax-distr 7747  ax-i2m1 7748  ax-0lt1 7749  ax-1rid 7750  ax-0id 7751  ax-rnegex 7752  ax-precex 7753  ax-cnre 7754  ax-pre-ltirr 7755  ax-pre-ltwlin 7756  ax-pre-lttrn 7757  ax-pre-apti 7758  ax-pre-ltadd 7759  ax-pre-mulgt0 7760  ax-pre-mulext 7761  ax-arch 7762
This theorem depends on definitions:  df-bi 116  df-dc 821  df-3or 964  df-3an 965  df-tru 1335  df-fal 1338  df-nf 1438  df-sb 1737  df-eu 2003  df-mo 2004  df-clab 2127  df-cleq 2133  df-clel 2136  df-nfc 2271  df-ne 2310  df-nel 2405  df-ral 2422  df-rex 2423  df-reu 2424  df-rmo 2425  df-rab 2426  df-v 2691  df-sbc 2913  df-csb 3007  df-dif 3077  df-un 3079  df-in 3081  df-ss 3088  df-nul 3368  df-if 3479  df-pw 3516  df-sn 3537  df-pr 3538  df-op 3540  df-uni 3744  df-int 3779  df-iun 3822  df-br 3937  df-opab 3997  df-mpt 3998  df-id 4222  df-po 4225  df-iso 4226  df-xp 4552  df-rel 4553  df-cnv 4554  df-co 4555  df-dm 4556  df-rn 4557  df-res 4558  df-ima 4559  df-iota 5095  df-fun 5132  df-fn 5133  df-f 5134  df-fv 5138  df-riota 5737  df-ov 5784  df-oprab 5785  df-mpo 5786  df-1st 6045  df-2nd 6046  df-pnf 7825  df-mnf 7826  df-xr 7827  df-ltxr 7828  df-le 7829  df-sub 7958  df-neg 7959  df-reap 8360  df-ap 8367  df-div 8456  df-inn 8744  df-n0 9001  df-z 9078  df-q 9438  df-rp 9470  df-fl 10073  df-mod 10126
This theorem is referenced by:  eucalgcvga  11773
  Copyright terms: Public domain W3C validator