Theory hrat

Parents

Contents

Type operators

Constants

Definitions

hrat_1hrat_ABS_defhrat_REP_defhrat_TY_DEFhrat_addhrat_bijectionshrat_invhrat_mulhrat_sucinttrat_1trat_addtrat_eqtrat_invtrat_multrat_sucint

Theorems

HRAT_ADD_ASSOCHRAT_ADD_SYMHRAT_ADD_TOTALHRAT_ARCHHRAT_LDISTRIBHRAT_MUL_ASSOCHRAT_MUL_LIDHRAT_MUL_LINVHRAT_MUL_SYMHRAT_NOZEROHRAT_SUCINTTRAT_ADD_ASSOCTRAT_ADD_SYMTRAT_ADD_SYM_EQTRAT_ADD_TOTALTRAT_ADD_WELLDEFINEDTRAT_ADD_WELLDEFINED2TRAT_ARCHTRAT_EQ_APTRAT_EQ_EQUIVTRAT_EQ_REFLTRAT_EQ_SYMTRAT_EQ_TRANSTRAT_INV_WELLDEFINEDTRAT_LDISTRIBTRAT_MUL_ASSOCTRAT_MUL_LIDTRAT_MUL_LINVTRAT_MUL_SYMTRAT_MUL_SYM_EQTRAT_MUL_WELLDEFINEDTRAT_MUL_WELLDEFINED2TRAT_NOZEROTRAT_SUCINTTRAT_SUCINT_0hrat_ABS_REP_CLASShrat_QUOTIENT

Definitions

hrat_1
⊢ hrat_1 = hrat_ABS trat_1
hrat_ABS_def
⊢ ∀r. hrat_ABS r = hrat_ABS_CLASS ($trat_eq r)
hrat_REP_def
⊢ ∀a. hrat_REP a = $@ (hrat_REP_CLASS a)
hrat_TY_DEF
⊢ ∃rep. TYPE_DEFINITION (λc. ∃r. r trat_eq r ∧ (c = $trat_eq r)) rep
hrat_add
⊢ ∀T1 T2. T1 hrat_add T2 = hrat_ABS (hrat_REP T1 trat_add hrat_REP T2)
hrat_bijections
⊢ (∀a. hrat_ABS_CLASS (hrat_REP_CLASS a) = a) ∧
  ∀r. (λc. ∃r. r trat_eq r ∧ (c = $trat_eq r)) r ⇔
      (hrat_REP_CLASS (hrat_ABS_CLASS r) = r)
hrat_inv
⊢ ∀T1. hrat_inv T1 = hrat_ABS (trat_inv (hrat_REP T1))
hrat_mul
⊢ ∀T1 T2. T1 hrat_mul T2 = hrat_ABS (hrat_REP T1 trat_mul hrat_REP T2)
hrat_sucint
⊢ ∀T1. hrat_sucint T1 = hrat_ABS (trat_sucint T1)
⊢ trat_1 = (0,0)
trat_add
⊢ ∀x y x' y'.
    (x,y) trat_add (x',y') =
    (PRE (SUC x * SUC y' + SUC x' * SUC y),PRE (SUC y * SUC y'))
⊢ ∀x y x' y'. (x,y) trat_eq (x',y') ⇔ (SUC x * SUC y' = SUC x' * SUC y)
⊢ ∀x y. trat_inv (x,y) = (y,x)
trat_mul
⊢ ∀x y x' y'.
    (x,y) trat_mul (x',y') = (PRE (SUC x * SUC x'),PRE (SUC y * SUC y'))
⊢ (trat_sucint 0 = trat_1) ∧
  ∀n. trat_sucint (SUC n) = trat_sucint n trat_add trat_1

Theorems

⊢ ∀h i j. h hrat_add (i hrat_add j) = h hrat_add i hrat_add j
⊢ ∀h i. h hrat_add i = i hrat_add h
⊢ ∀h i. (h = i) ∨ (∃d. h = i hrat_add d) ∨ ∃d. i = h hrat_add d
⊢ ∀h. ∃n d. hrat_sucint n = h hrat_add d
⊢ ∀h i j. h hrat_mul (i hrat_add j) = h hrat_mul i hrat_add h hrat_mul j
⊢ ∀h i j. h hrat_mul (i hrat_mul j) = h hrat_mul i hrat_mul j
⊢ ∀h. hrat_1 hrat_mul h = h
⊢ ∀h. hrat_inv h hrat_mul h = hrat_1
⊢ ∀h i. h hrat_mul i = i hrat_mul h
⊢ ∀h i. h hrat_add i ≠ h
⊢ (hrat_sucint 0 = hrat_1) ∧
  ∀n. hrat_sucint (SUC n) = hrat_sucint n hrat_add hrat_1
⊢ ∀h i j. h trat_add (i trat_add j) trat_eq h trat_add i trat_add j
⊢ ∀h i. h trat_add i trat_eq i trat_add h
⊢ ∀h i. h trat_add i = i trat_add h
⊢ ∀h i.
    h trat_eq i ∨ (∃d. h trat_eq i trat_add d) ∨ ∃d. i trat_eq h trat_add d
⊢ ∀p q r. p trat_eq q ⇒ p trat_add r trat_eq q trat_add r
⊢ ∀p1 p2 q1 q2.
    p1 trat_eq p2 ∧ q1 trat_eq q2 ⇒ p1 trat_add q1 trat_eq p2 trat_add q2
⊢ ∀h. ∃n d. trat_sucint n trat_eq h trat_add d
⊢ ∀p q. (p = q) ⇒ p trat_eq q
⊢ ∀p q. p trat_eq q ⇔ ($trat_eq p = $trat_eq q)
⊢ ∀p. p trat_eq p
⊢ ∀p q. p trat_eq q ⇔ q trat_eq p
⊢ ∀p q r. p trat_eq q ∧ q trat_eq r ⇒ p trat_eq r
⊢ ∀p q. p trat_eq q ⇒ trat_inv p trat_eq trat_inv q
⊢ ∀h i j.
    h trat_mul (i trat_add j) trat_eq h trat_mul i trat_add h trat_mul j
⊢ ∀h i j. h trat_mul (i trat_mul j) trat_eq h trat_mul i trat_mul j
⊢ ∀h. trat_1 trat_mul h trat_eq h
⊢ ∀h. trat_inv h trat_mul h trat_eq trat_1
⊢ ∀h i. h trat_mul i trat_eq i trat_mul h
⊢ ∀h i. h trat_mul i = i trat_mul h
⊢ ∀p q r. p trat_eq q ⇒ p trat_mul r trat_eq q trat_mul r
⊢ ∀p1 p2 q1 q2.
    p1 trat_eq p2 ∧ q1 trat_eq q2 ⇒ p1 trat_mul q1 trat_eq p2 trat_mul q2
⊢ ∀h i. ¬(h trat_add i trat_eq h)
⊢ trat_sucint 0 trat_eq trat_1 ∧
  ∀n. trat_sucint (SUC n) trat_eq trat_sucint n trat_add trat_1
⊢ ∀n. trat_sucint n trat_eq (n,0)
hrat_ABS_REP_CLASS
⊢ (∀a. hrat_ABS_CLASS (hrat_REP_CLASS a) = a) ∧
  ∀c. (∃r. r trat_eq r ∧ (c = $trat_eq r)) ⇔
      (hrat_REP_CLASS (hrat_ABS_CLASS c) = c)
hrat_QUOTIENT
⊢ QUOTIENT $trat_eq hrat_ABS hrat_REP