rings_1 Theory
Introduces family of classes for rings, integral domains
and fields. Also introduces ideals and quotient rings, and
sums and products.
There were several problems with this theory. Firstly, the type
theory didn't support reasoning smoothly with ideals: ideals had
to be defined as prop-valued predicates, with the result that
reasoning about set operations on them was awkward.
Also, the type theory's constructivity forced the provision of
`detaching functions' for ideals, and it was clumsy having to
carry these around as well.
Summary of Definitions
Typed Definitions
-
rng_sig
*1
-
-
rng_car
*1
-
-
rng_eq
*1
-
-
rng_le
*1
-
-
rng_plus
*1
-
-
rng_zero
*1
-
-
rng_minus
*1
-
-
rng_times
*1
-
-
rng_one
*1
-
-
rng_div
*1
-
-
ring_p
*1
-
-
rng
*1
-
-
crng
*1
-
-
mul_mon_of_rng
*1
*4
*4
*6
-
-
add_grp_of_rng
*1
*5
*9
-
-
rng_sum
*1
-
-
rng_prod
*1
-
-
nsgrp_of_ideal
*1
-
-
ring_divs
*1
-
-
ring_non_triv
*1
-
-
integ_dom_p
*1
-
-
field_p
*1
-
-
integ_dom
*1
-
-
field *
-
-
rprime
*1
-
-
ideal_p
*1
-
-
ideal
*1
-
-
zero_ideal *
-
-
one_ideal *
-
-
princ_ideal
*1
-
-
quot_ring_car
*12
-
-
quot_ring
*1
-
-
prime_ideal_p
*1
-
-
max_ideal_p
*1
-
-
rng_hom_p
*1
-
-
rng_chom_p
*1
-
-
ring_hom
*1
-
-
ring_quot_hom *
-
-
int_ring *
-
-
int_pi_det_fun
*1
-
-
choose
*6
-
-
rng_nexp
*1
-
-
rng_nat_op
*1
-
-
rng_when
*1
-
Main Theorems
-
assert_of_rng_eq
*2
-
-
decidable__rng_eq
*7
-
-
rng_minus_over_plus
*1
-
-
rng_minus_minus
*1
-
-
rng_minus_zero
*1
-
-
rng_plus_inv
*1
-
-
rng_plus_inv_assoc
*1
-
-
rng_plus_zero
*1
-
-
rng_plus_cancel_l
*1
-
-
rng_plus_assoc
*1
-
-
rng_times_assoc
*1
-
-
rng_times_one
*1
-
-
crng_times_comm
*1
-
-
crng_times_ac_1
*1
-
-
rng_times_over_plus
*3
-
-
rng_times_zero
*11
-
-
rng_times_over_minus
*12
-
-
rng_plus_comm
*13
-
-
rng_plus_ac_1
*1
-
-
ring_triv
*3
-
-
sq_stable__integ_dom_p
*3
-
-
ideal_defines_eqv
*1
-
-
det_ideal_ap_elim
*9
-
-
det_ideal_defines_eqv
*8
-
-
quot_ring_car_elim
*7
-
-
quot_ring_car_elim_a
*6
-
-
quot_ring_car_elim_b
*1
-
-
all_rng_quot_elim
*1
-
-
all_rng_quot_elim_a
*2
-
-
sq_stable__prime_ideal
*4
-
-
idom_alt_char
*9
-
-
quot_by_prime_ideal
*9
-
-
princ_ideal_mem_cond
*9
-
-
ideal_of_prime
*8
-
-
int_pi_detach
*1
-
-
prime_ideals_in_int_ring
*1
-
-
rng_nexp_zero
*1
-
-
rng_nexp_unroll
*2
-
-
rng_nat_op_one
*1
-
-
rng_nat_op_add
*1
-
-
rng_sum_unroll_base
*2
-
-
rng_sum_unroll_hi
*2
-
-
rng_sum_unroll_unit
*2
-
-
rng_sum_unroll_lo
*2
-
-
rng_sum_shift
*1
-
-
rng_sum_split
*1
-
-
rng_sum_plus
*1
-
-
rng_times_sum_l
*9
-
-
rng_times_sum_r
*9
-
-
rng_times_nat_op
*4
-
-
rng_times_nat_op_r
*4
-
-
binomial
*31
-
-
sum_of_geometric_prog
*8
-
-
rng_times_when_l
*4
-
-
rng_times_when_r
*4
-
-
rng_when_of_zero
*1
-
-
rng_when_thru_plus
*1
-
-
rng_when_when
*1
-
-
rng_when_swap
*1
-
Listing
Last modified February 24th, 1995
Paul Jackson /
jackson@cs.cornell.edu