Origin Definitions Sections StandardLIB Doc
IF YOU CAN SEE THIS go to /sfa/Nuprl/Shared/Xindentation_hack_doc.html
num_thy_1
Nuprl Section: num_thy_1 - Elementary divisibility theory over the integers. Gcd function and relation introduced. Chinese remainder theorem proven.

Selected Objects
defdivides b | a == c:. a = bc
THMzero_divs_only_zero a:. 0 | a  a = 0
THMone_divs_any a:. 1 | a
THMany_divs_zero b:. b | 0
THMdivides_invar_1 a,b:. a | b  -a | b
THMdivides_invar_2 a,b:. a | b  a | -b
THMdivisors_bound a:, b:. a | b  ab
THMonly_pm_one_divs_one b:. b | 1  b =  1
THMdivides_of_absvals a,b:. |a| | |b|  a | b
THMdivides_reflexivity a:. a | a
THMdivides_transitivity a,b,c:. a | b  b | c  a | c
THMdivides_preorder Preorder(;x,y.x | y)
THMdivides_anti_sym_n a,b:. a | b  b | a  a = b
THMdivides_anti_sym a,b:. a | b  b | a  a =  b
THMassoc_reln a,b:. a | b & b | a  a =  b
THMdivisor_of_sum a,b1,b2:. a | b1  a | b2  a | b1+b2
THMdivisor_of_minus a,b:. a | b  a | -b
THMdivisor_of_mul a,b,c:. a | b  a | bc
THMdivides_mul a,b:. a | b  (n:. na | nb)
THMdivisor_bound a:, b:. a | b  ab
THMdivides_iff_rem_zero a:, b:. b | a  (a rem b) = 0
THMdivides_iff_div_exact a:, n:. n | a  (a  n)n = a
THMdecidable__divides a,b:. Dec(a | b)
COMdivides_instance_com The proof here illustrates how the evaluation of the extract of one theorem (decidable__divides) can help to prove another theorem. ...
THMdivides_instance 3 | 6
COMgcd_p_com Should redo this not using uncurried antecedents.Makes forward chaining a lot easier.
defassoced a ~ b == a | b & b | a
THMassoced_equiv_rel EquivRel x,y:. x ~ y
THMdivides_functionality_wrt_assoced a,a',b,b':. (a ~ a')  (b ~ b')  (a | b  a' | b')
THMassoced_weakening a,b:. a = b  (a ~ b)
THMassoced_transitivity a,b,c:. (a ~ b)  (b ~ c)  (a ~ c)
THMmultiply_functionality_wrt_assoced a,a',b,b':. (a ~ a')  (b ~ b')  ((ab) ~ (a'b'))
THMassoced_functionality_wrt_assoced a,b,a',b':. (a ~ a')  (b ~ b')  ((a ~ b)  (a' ~ b'))
THMassoced_elim a,b:. (a ~ b)  a = b  a = -b
THMmul_cancel_in_assoced a,b:, n:. ((na) ~ (nb))  (a ~ b)
THMneg_assoced a:. (-a) ~ a
THMabsval_assoced a:. |a| ~ a
THMunit_chars a:. a | 1  (a ~ 1)
THMassoced_nelim a,b:. (a ~ b)  a = b
THMpdivisor_bound a:, b:. a | b & b | a  a<b & a | b
THMdivides_nchar a,b:. a | b  (c:. b = ac  )
defgcd_p GCD(a;b;y) == y | a & y | b & (z:. z | a & z | b  z | y)
THMgcd_p_functionality_wrt_assoced a,a',b,b',y,y':.
(a ~ a')  (b ~ b')  (y ~ y')  (GCD(a;b;y)  GCD(a';b';y'))
THMgcd_p_eq_args a:. GCD(a;a;a)
THMgcd_p_zero a:. GCD(a;0;a)
THMgcd_p_one a:. GCD(a;1;1)
THMgcd_p_zero_rel a,b:. GCD(a;0;b)  a = b  a = -b
THMgcd_p_sym a,b,y:. GCD(a;b;y)  GCD(b;a;y)
THMgcd_p_sym_a a,b,y:. GCD(a;b;y)  GCD(b;a;y)
THMgcd_p_neg_arg a,b,y:. GCD(a;b;y)  GCD(a;-b;y)
THMgcd_p_neg_arg_a a,b,y:. GCD(a;b;y)  GCD(-a;b;y)
THMgcd_p_neg_arg_2 a,b,y:. GCD(a;b;y)  GCD(a;-b;y)
THMgcd_p_shift a,b,y,k:. GCD(a;b;y)  GCD(a;b+ka;y)
THMgcd_unique a,b,y1,y2:. GCD(a;b;y1)  GCD(a;b;y2)  (y1 ~ y2)
THMgcd_of_triple a,b,c,x,y:.
GCD(a;b;x)

GCD(x;c;y)  y | a & y | b & y | c & (z:. z | a  z | b  z | c  z | y)
defgcd gcd(a;b) == if b=0 a else gcd(b;a rem b) fi  (recursive)
THMgcd_sat_gcd_p a,b:. GCD(a;b;gcd(a;b))
THMgcd_sat_pred a,b:. GCD(a;b;gcd(a;b))
THMgcd_elim a,b:. y:. GCD(a;b;y) & gcd(a;b) = y
THMgcd_sym a,b:. gcd(a;b) ~ gcd(b;a)
THMgcd_is_divisor_1 a,b:. gcd(a;b) | a
THMgcd_is_divisor_2 a,b:. gcd(a;b) | b
THMgcd_is_gcd a,b,c:. c | a  c | b  c | gcd(a;b)
COMquot_rem_exists_com The q and r computed by the extracts of these theorems are not the same as those returned by the divides(a;b) and remainder(a;b) built-in arithmetic functions: ...
THMquot_rem_exists_n a:, b:. q:, r:b. a = qb+r
THMquot_rem_exists a:, b:. q:, r:b. a = qb+r
THMgcd_exists_n b:, a:. y:. GCD(a;b;y)
THMgcd_ex_n b:, a:. y:. GCD(a;b;y)
THMgcd_exists a,b:. y:. GCD(a;b;y)
THMbezout_ident_n b:, a:. u,v:. GCD(a;b;ua+vb)
THMbezout_ident a,b:. u,v:. GCD(a;b;ua+vb)
THMgcd_p_mul a,b,y,n:. GCD(a;b;y)  GCD(na;nb;ny)
THMgcd_mul a,b,n:. (ngcd(a;b)) ~ gcd(na;nb)
THMgcd_assoc a,b,c:. gcd(gcd(a;b);c) ~ gcd(a;gcd(b;c))
defcoprime CoPrime(a,b) == GCD(a;b;1)
THMsq_stable__coprime i,j:. SqStable(CoPrime(i,j))
COMprime_com We follow a more abstract characterization of primeness here, defining separately notions of primeness and irreducibility. ...
defreducible reducible(a) == b,c:. (b ~ 1) & (c ~ 1) & a = bc
defatomic atomic(a) == a = 0 & (a ~ 1) & reducible(a)
COMatomic_char_com This theorem was quite tedious to prove. ...
THMatomic_char a:. atomic(a)  (a ~ 1) & (b:. b | a  (b ~ 1)  (b ~ a))
defprime prime(a) == a = 0 & (a ~ 1) & (b,c:. a | bc  a | b  a | c)
THMself_divisor_mul a:, b:. ab | a  (b ~ 1)
THMprime_imp_atomic a:. prime(a)  atomic(a)
THMprime_elim p:. prime(p)  p = 0 & (p ~ 1) & (a:. a | p  (a ~ 1)  (a ~ p))
THMcoprime_intro a,b:. (c:. c | a  c | b  c | 1)  CoPrime(a,b)
THMcoprime_elim a,b:. CoPrime(a,b)  (c:. c | a  c | b  (c ~ 1))
THMcoprime_elim_a a,b:. CoPrime(a,b)  (gcd(a;b) ~ 1)
THMcoprime_iff_ndivides a,p:. prime(p)  (CoPrime(p,a)  p | a)
THMcoprime_bezout_id0 a,b:. CoPrime(a,b)  (x,y:. (ax+by) ~ 1)
THMcoprime_bezout_id1 a,b:. CoPrime(a,b)  (x,y:. ax+by = 1)
THMcoprime_bezout_id2 a,b:. (x,y:. ax+by = 1)  CoPrime(a,b)
THMcoprime_bezout_id a,b:. CoPrime(a,b)  (x,y:. ax+by = 1)
THMcoprime_prod a,b1,b2:. CoPrime(a,b1)  CoPrime(a,b2)  CoPrime(a,b1b2)
THMcoprime_divisors_prod a1,a2,b:. CoPrime(a1,a2)  a1 | b  a2 | b  a1a2 | b
THMatomic_imp_prime a:. atomic(a)  prime(a)
THMprime_divs_prod p:. prime(p)  (a1,a2:. p | a1a2  p | a1  p | a2)
defeqmod a = b mod m == m | a-b
THMeqmod_weakening m,a,b:. a = b  (a = b mod m)
THMeqmod_transitivity m,a,b,c:. (a = b mod m)  (b = c mod m)  (a = c mod m)
THMeqmod_inversion m,a,b:. (a = b mod m)  (b = a mod m)
THMeqmod_functionality_wrt_eqmod m,m',a,a',b,b':.
m = m'

(a = a' mod m)  (b = b' mod m)  ((a = b mod m)  (a' = b' mod m'))
THMeqmod_fun m,a,a',b,b':.
(a = a' mod m)  (b = b' mod m)  ((a = b mod m)  (a' = b' mod m))
THMadd_functionality_wrt_eqmod m,a,a',b,b':. (a = a' mod m)  (b = b' mod m)  ((a+b) = (a'+b') mod m)
THMmultiply_functionality_wrt_eqmod m,a,a',b,b':. (a = a' mod m)  (b = b' mod m)  ((ab) = (a'b') mod m)
COMchrem_com Here is the existential half of the chinese remainder theorem for pairs of integers. ...
THMchrem_exists_aux r,s:. CoPrime(r,s)  (x:. (x = 1 mod r) & (x = 0 mod s))
THMchrem_exists_aux_a r:, s:{s':| CoPrime(r,s') }. x:. ((x = 1 mod r) & (x = 0 mod s))
THMchrem_exists r,s:. CoPrime(r,s)  (a,b:. x:. (x = a mod r) & (x = b mod s))
THMchrem_exists_a r:, s:{s':| CoPrime(r,s') }, a,b:. x:. ((x = a mod r) & (x = b mod s))
deffib fib(n) == if n=0  n=1 1 else fib(n-1)+fib(n-2) fi  (recursive)
THMfib_coprime n:. CoPrime(fib(n),fib(n+1))
IF YOU CAN SEE THIS go to /sfa/Nuprl/Shared/Xindentation_hack_doc.html

Origin Definitions Sections StandardLIB Doc