gcd LEMMA= j /=0)IMPLIES(i,j)= gcd(java.lang.StringIndexOutOfBoundsException: Index 78 out of bounds for length 78 %------------------------------------------------------------------------------ % Author: Alfons Geser, HTWK Leipzig, Germany % Ricky W. Butler, NASA Langley % Date: May, 2009 % % Anthony N (March 2012) %------------------------------------------------------------------------------ BEGIN
IMPORTING divides_lems, mod_lems IMPORTING div %% for proof
n,mEXISTS:(ijipjp
nn,mm:
p ljava.lang.StringIndexOutOfBoundsException: Range [15, 13) out of bounds for length 22
%
ii, nzint
gcd:,j jj|0=jj=0)java.lang.StringIndexOutOfBoundsException: Index 43 out of bounds for length 43
() ()
= max({k: posnat | divides(k,i) AND divides% Bezouts: LEMMA gcd(a,b) = d IMPLIES
r: LEMMAi=ORj/) java.lang.StringIndexOutOfBoundsException: Index 50 out of bounds for length 50
dividesgcd,j)AND (gcd,,)
gcd_is_max: LEMMA (i /= 0 OR j /= 0) AND divides(kk,i) AND divides(kk,j) IMPLIES <gcdj
gcd_def : LEMMA (i /= 0 OR j /= 0) IMPLIES
(gcd,)= IFF
( (divides(nn
( : (mm)ANDdivides(,j IMPLIES mm <= nn)))
gcd_0_pos : LEMMA gcd(0,mm) = mm
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
gcd_0_neg : LEMMA gcd(0,-mm) = mm
0THEN-)
gcd_lt_nat : LEMMA (n /ELSIF0 j
(i
gcd_lt = j compute_gcdrem)
gcd(i java.lang.StringIndexOutOfBoundsException: Index 10 out of bounds for length 10
gcd_0 : LEMMA gcd(0,ii) =ELSIFi< +1
%
gcd_mod_div
gcd_factors_nat: LEMMA (n /= EXISTS ip, m>1 AND rel_prime(n,m) IMPLIESFORALL:(m)):EXISTSk(m):modkm java.lang.StringIndexOutOfBoundsException: Index 61 out of bounds for length 61
gcd_factors: LEMMA (i /= 0 OR j /= 0) IMPLIES EXISTS ip,jp: gcd(i,j) = ip*i + jp*j
divides_gcd: LEMMA (i /= 0 OR j /= 0) AND divides(kk,i) AND divides(kk,j) IMPLIES divides(kk,gcd(i,j))
% Bezouts: LEMMA gcd(a,b) = d IMPLIES % EXISTS (j,k: int): a*j+b*k = d
rel_prime_div_prod: LEMMA (i/=0 OR j/=0) IMPLIES
rel_prime(i,j) AND divides(i,j*k) IMPLIES divides(i,k)
rel_prime_sym: LEMMA (i/=0 OR j/=0) IMPLIES rel_prime(i,j) = rel_prime(j,i)
rel_prime_mult_right: LEMMA (i/=0 OR j/=0) AND (i/=0 OR k/=0) AND rel_prime(i,j) AND rel_prime(i,k) IMPLIES rel_prime(i,j*k)
rel_prime_mult_left: LEMMA (i/=0 OR j/=0) AND (j/=0 OR k/=0) AND rel_prime(i,j) AND rel_prime(k,j) IMPLIES rel_prime(i*k,j)
% % Euclid's algorithm %
compute_gcd(i:int,j:{jj:int| i=0 => jj /= 0}): RECURSIVE {kj: posnat | kj = gcd(i,j)} = IF i<0 THEN compute_gcd(-i,j) ELSIF j<0 THEN compute_gcd(i,-j) ELSIF i=0 THEN j ELSIF j=0 THEN i ELSIF i<j THEN compute_gcd(j,i) ELSE
(LET rem = mod(i,j) IN IF rem = 0 THEN j ELSE compute_gcd(j,rem) ENDIF) ENDIF MEASURE (IF i<0 AND j<0 THEN -i-j+3 ELSIF i<0 THEN -i+j+2 ELSIF j<0 THEN i-j+2 ELSIF i<j THEN i+j+1 ELSE i+j ENDIF)
¤ Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.0.3Bemerkung:
¤
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung ist noch experimentell.