Theory frac

Parents

Contents

Type operators

Constants

Definitions

frac_0_deffrac_1_deffrac_TY_DEFfrac_add_deffrac_ainv_deffrac_div_deffrac_dnm_deffrac_minv_deffrac_mul_deffrac_nmr_deffrac_save_deffrac_sgn_deffrac_sub_deffrac_tybijles_abs_def

Theorems

DNMFRACFRAC_0_SAVEFRAC_1_0FRAC_1_SAVEFRAC_ABS_SGNFRAC_ADD_ASSOCFRAC_ADD_CALCULATEFRAC_ADD_COMMFRAC_ADD_RIDFRAC_ADD_SAVEFRAC_AINV_0FRAC_AINV_ADDFRAC_AINV_AINVFRAC_AINV_CALCULATEFRAC_AINV_LMULFRAC_AINV_ONEONEFRAC_AINV_ONTOFRAC_AINV_RMULFRAC_AINV_SAVEFRAC_AINV_SUBFRAC_DIV_CALCULATEFRAC_DNMPOSFRAC_DNM_SAVEFRAC_EQFRAC_EQ_ALTFRAC_MINV_1FRAC_MINV_CALCULATEFRAC_MINV_SAVEFRAC_MULT_CALCULATEFRAC_MUL_ASSOCFRAC_MUL_COMMFRAC_MUL_RIDFRAC_MUL_SAVEFRAC_NMR_SAVEFRAC_NOT_EQFRAC_NOT_EQ_IMPFRAC_SGN_AINVFRAC_SGN_CALCULATEFRAC_SGN_CASESFRAC_SGN_IMP_EQGTFRAC_SGN_MULFRAC_SGN_MUL2FRAC_SGN_NEGFRAC_SGN_NOT_NEGFRAC_SGN_POSFRAC_SGN_TOTALFRAC_SUB_ADDFRAC_SUB_CALCULATEFRAC_SUB_SUBNMRfrac_bij

Definitions

⊢ frac_0 = abs_frac (0,1)
⊢ frac_1 = abs_frac (1,1)
frac_TY_DEF
⊢ ∃rep. TYPE_DEFINITION (λf. 0 < SND f) rep
⊢ ∀f1 f2.
    frac_add f1 f2 =
    abs_frac
      (frac_nmr f1 * frac_dnm f2 + frac_nmr f2 * frac_dnm f1,
       frac_dnm f1 * frac_dnm f2)
⊢ ∀f1. frac_ainv f1 = abs_frac (-frac_nmr f1,frac_dnm f1)
⊢ ∀f1 f2. frac_div f1 f2 = frac_mul f1 (frac_minv f2)
⊢ ∀f. frac_dnm f = SND (rep_frac f)
⊢ ∀f1.
    frac_minv f1 = abs_frac (frac_sgn f1 * frac_dnm f1,ABS (frac_nmr f1))
⊢ ∀f1 f2.
    frac_mul f1 f2 =
    abs_frac (frac_nmr f1 * frac_nmr f2,frac_dnm f1 * frac_dnm f2)
⊢ ∀f. frac_nmr f = FST (rep_frac f)
⊢ ∀nmr dnm. frac_save nmr dnm = abs_frac (nmr,&dnm + 1)
⊢ ∀f1. frac_sgn f1 = SGN (frac_nmr f1)
⊢ ∀f1 f2. frac_sub f1 f2 = frac_add f1 (frac_ainv f2)
frac_tybij
⊢ (∀a. abs_frac (rep_frac a) = a) ∧
  ∀r. (λf. 0 < SND f) r ⇔ (rep_frac (abs_frac r) = r)
⊢ ∀f1 f2.
    les_abs f1 f2 ⇔ frac_nmr f1 * frac_dnm f2 < frac_nmr f2 * frac_dnm f1

Theorems

⊢ ∀a b. 0 < b ⇒ (frac_dnm (abs_frac (a,b)) = b)
⊢ ∀f. abs_frac (frac_nmr f,frac_dnm f) = f
⊢ frac_0 = frac_save 0 0
⊢ frac_1 ≠ frac_0
⊢ frac_1 = frac_save 1 0
⊢ ∀f1. frac_nmr f1 ≠ 0 ⇒ (ABS (frac_sgn f1) = 1)
⊢ ∀a b c. frac_add a (frac_add b c) = frac_add (frac_add a b) c
⊢ ∀a1 b1 a2 b2.
    0 < b1 ⇒
    0 < b2 ⇒
    (frac_add (abs_frac (a1,b1)) (abs_frac (a2,b2)) =
     abs_frac (a1 * b2 + a2 * b1,b1 * b2))
⊢ ∀a b. frac_add a b = frac_add b a
⊢ ∀a. frac_add a frac_0 = a
⊢ ∀a1 b1 a2 b2.
    frac_add (frac_save a1 b1) (frac_save a2 b2) =
    frac_save (a1 * &b2 + a2 * &b1 + a1 + a2) (b1 * b2 + b1 + b2)
⊢ frac_ainv frac_0 = frac_0
⊢ ∀f1 f2.
    frac_ainv (frac_add f1 f2) = frac_add (frac_ainv f1) (frac_ainv f2)
⊢ ∀f1. frac_ainv (frac_ainv f1) = f1
⊢ ∀a1 b1. 0 < b1 ⇒ (frac_ainv (abs_frac (a1,b1)) = abs_frac (-a1,b1))
⊢ ∀f1 f2. frac_ainv (frac_mul f1 f2) = frac_mul (frac_ainv f1) f2
⊢ ONE_ONE frac_ainv
⊢ ONTO frac_ainv
⊢ ∀f1 f2. frac_ainv (frac_mul f1 f2) = frac_mul f1 (frac_ainv f2)
⊢ ∀a1 b1. frac_ainv (frac_save a1 b1) = frac_save (-a1) b1
⊢ ∀f1 f2. frac_ainv (frac_sub f2 f1) = frac_sub f1 f2
⊢ ∀a1 b1 a2 b2.
    0 < b1 ⇒
    0 < b2 ⇒
    a2 ≠ 0 ⇒
    (frac_div (abs_frac (a1,b1)) (abs_frac (a2,b2)) =
     abs_frac (a1 * SGN a2 * b2,b1 * ABS a2))
⊢ ∀f. 0 < frac_dnm f
⊢ ∀a1 b1. frac_dnm (frac_save a1 b1) = &b1 + 1
⊢ ∀a1 b1 a2 b2.
    0 < b1 ⇒
    0 < b2 ⇒
    ((abs_frac (a1,b1) = abs_frac (a2,b2)) ⇔ (a1 = a2) ∧ (b1 = b2))
⊢ ∀f1 f2.
    (f1 = f2) ⇔ (frac_nmr f1 = frac_nmr f2) ∧ (frac_dnm f1 = frac_dnm f2)
⊢ frac_minv frac_1 = frac_1
⊢ ∀a1 b1.
    0 < b1 ⇒
    a1 ≠ 0 ⇒
    (frac_minv (abs_frac (a1,b1)) = abs_frac (SGN a1 * b1,ABS a1))
⊢ ∀a1 b1.
    a1 ≠ 0 ⇒
    (frac_minv (frac_save a1 b1) =
     frac_save (SGN a1 * (&b1 + 1)) (Num (ABS a1 − 1)))
⊢ ∀a1 b1 a2 b2.
    0 < b1 ⇒
    0 < b2 ⇒
    (frac_mul (abs_frac (a1,b1)) (abs_frac (a2,b2)) =
     abs_frac (a1 * a2,b1 * b2))
⊢ ∀a b c. frac_mul a (frac_mul b c) = frac_mul (frac_mul a b) c
⊢ ∀a b. frac_mul a b = frac_mul b a
⊢ ∀a. frac_mul a frac_1 = a
⊢ ∀a1 b1 a2 b2.
    frac_mul (frac_save a1 b1) (frac_save a2 b2) =
    frac_save (a1 * a2) (b1 * b2 + b1 + b2)
⊢ ∀a1 b1. frac_nmr (frac_save a1 b1) = a1
⊢ ∀a1 b1 a2 b2.
    0 < b1 ⇒
    0 < b2 ⇒
    (abs_frac (a1,b1) ≠ abs_frac (a2,b2) ⇔ a1 ≠ a2 ∨ b1 ≠ b2)
⊢ ∀a1 b1 a2 b2.
    0 < b1 ⇒
    0 < b2 ⇒
    (a1,b1) ≠ (a2,b2) ⇒
    abs_frac (a1,b1) ≠ abs_frac (a2,b2)
⊢ ∀f1. -frac_sgn (frac_ainv f1) = frac_sgn f1
⊢ ∀a1 b1. 0 < b1 ⇒ (frac_sgn (abs_frac (a1,b1)) = SGN a1)
⊢ ∀f1 P.
    ((frac_sgn f1 = -1) ⇒ P) ∧ ((frac_sgn f1 = 0) ⇒ P) ∧
    ((frac_sgn f1 = 1) ⇒ P) ⇒
    P
⊢ ∀f1. frac_sgn f1 ≠ -1 ⇔ (frac_sgn f1 = 0) ∨ (frac_sgn f1 = 1)
⊢ ∀f1 f2. frac_sgn (frac_mul f1 f2) = frac_sgn f1 * frac_sgn f2
⊢ ∀f1 f2. frac_sgn (frac_mul f1 f2) = frac_sgn f1 * frac_sgn f2
⊢ ∀f. -frac_sgn (frac_ainv f) = frac_sgn f
⊢ ∀f1. frac_sgn f1 ≠ -1 ⇔ (0 = frac_nmr f1) ∨ 0 < frac_nmr f1
⊢ ∀f1. (frac_sgn f1 = 1) ⇔ 0 < frac_nmr f1
⊢ ∀f1. (frac_sgn f1 = -1) ∨ (frac_sgn f1 = 0) ∨ (frac_sgn f1 = 1)
⊢ ∀a b c. frac_sub a (frac_add b c) = frac_sub (frac_sub a b) c
⊢ ∀a1 b1 a2 b2.
    0 < b1 ⇒
    0 < b2 ⇒
    (frac_sub (abs_frac (a1,b1)) (abs_frac (a2,b2)) =
     abs_frac (a1 * b2 − a2 * b1,b1 * b2))
⊢ ∀a b c. frac_sub a (frac_sub b c) = frac_add (frac_sub a b) c
⊢ ∀a b. 0 < b ⇒ (frac_nmr (abs_frac (a,b)) = a)
⊢ (∀a. abs_frac (rep_frac a) = a) ∧
  ∀r. (λf. 0 < SND f) r ⇔ (rep_frac (abs_frac r) = r)