Theorems
EXISTS_ring
⊢ ∀P. (∃r. P r) ⇔ ∃f m0 m. P <|carrier := f; sum := m0; prod := m|>
FORALL_ring
⊢ ∀P. (∀r. P r) ⇔ ∀f m0 m. P <|carrier := f; sum := m0; prod := m|>
⊢ Ring r ⇒
∀l1 l2.
LIST_REL rassoc l1 l2 ∧ set l2 ⊆ R ⇒
rassoc (GBAG r.prod (LIST_TO_BAG l1)) (GBAG r.prod (LIST_TO_BAG l2))
⊢ (∀x. Invariant x ∧ Guard x ⇒ f (Cmd x) < f x) ∧
(∀x. Precond x ⇒ Invariant x) ∧
(∀x. Invariant x ∧ ¬Guard x ⇒ Postcond x) ∧
HOARE_SPEC (λx. Invariant x ∧ Guard x) Cmd Invariant ⇒
HOARE_SPEC Precond (WHILE Guard Cmd) Postcond
⊢ ∀n k. (ZN 1).prod.exp n k = 0
⊢ ∀n. CARD (ZN n).carrier = n
⊢ ∀n. 0 < n ⇒ char (ZN n) = n
⊢ ∀m n. 1 < m ∧ coprime m n ⇒ n MOD m ∈ Euler m
⊢ ∀m n.
0 < m ∧ coprime m n ⇒ ∀k. n ** k MOD m = n ** (k MOD ordz m n) MOD m
⊢ ∀m n. 1 < m ∧ coprime m n ⇒ Unit (ZN m) (n MOD m)
⊢ ∀m n. 0 < m ∧ coprime m n ⇒ 0 < ordz m n ∧ n ** ordz m n MOD m = 1 MOD m
⊢ ∀m n. 1 < m ∧ coprime m n ⇒ 0 < ordz m n ∧ n ** ordz m n MOD m = 1
⊢ ∀m n. 0 < m ∧ coprime m n ⇒ ordz m n divides phi m
⊢ ∀m n. 0 < m ∧ coprime m n ⇒ ordz m n divides totient m
⊢ ∀m n. 1 < m ∧ 1 < n MOD m ∧ coprime m n ⇒ 1 < ordz m n
⊢ ∀m n. 1 < m ∧ coprime m n ⇒ ordz m n < m
⊢ ∀n. (ZN n).carrier = count n ∧ (ZN n).sum = add_mod n ∧
(ZN n).prod = times_mod n
⊢ ∀n. 0 < n ⇒ ∀x k. (ZN n).prod.exp x k = x ** k MOD n
⊢ ∀n. FINITE (ZN n).carrier
⊢ ∀n. 0 < n ⇒ FiniteRing (ZN n)
⊢ ∀n. 0 < n ⇒ (ZN n).sum.id = 0 ∧ (ZN n).prod.id = 1 MOD n
⊢ ∀n. 1 < n ⇒ (ZN n).sum.id = 0 ∧ (ZN n).prod.id = 1
⊢ ∀n. 1 < n ⇒ Invertibles (ZN n).prod = Estar n
⊢ ∀n. 0 < n ⇒ FiniteGroup (Invertibles (ZN n).prod)
⊢ ∀n. 0 < n ⇒ Group (Invertibles (ZN n).prod)
⊢ ∀m n. 0 < m ⇒ order (Invertibles (ZN m).prod) (n MOD m) = ordz m n
⊢ ∀n. 0 < n ⇒ ∀x y. x * y MOD n = 1 ⇒ coprime x n
⊢ ∀n. 1 < n ⇒ ∀x. coprime x n ⇔ ∃y. x * y MOD n = 1
⊢ ∀m n. 0 < m ∧ gcd m n ≠ 1 ⇒ ∀k. 0 < k ⇒ n ** k MOD m ≠ 1
⊢ ∀n. 0 < n ⇒ ∀k. (ZN n).sum.exp 1 k = k MOD n
⊢ ∀n c. 0 < n ⇒ (ZN n).sum.exp 0 c = 0
⊢ ∀n. (ZN n).sum.exp (ZN n).prod.id 1 = 1 MOD n
⊢ ∀n c. 0 < n ⇒ (ZN n).sum.exp (ZN n).prod.id c = c MOD n
⊢ ∀n. 0 < n ⇒ ordz n 0 = if n = 1 then 1 else 0
⊢ ∀n. 0 < n ⇒ ordz n 1 = 1
⊢ ∀m n k. 1 < m ∧ 0 < k ⇒ (n ** k MOD m = 1 ⇔ ordz m n divides k)
⊢ ∀m n. 0 < m ∧ 0 < ordz m n ⇒ ordz m n divides phi m
⊢ ∀n j k. 1 < n ∧ 0 < j ∧ 1 < k ⇒ (k divides tops n j ⇔ ordz k n divides j)
⊢ ∀m n. 0 < m ⇒ m divides tops n (ordz m n)
⊢ ∀m n. 0 < m ⇒ (ordz m n = 0 ⇔ gcd m n ≠ 1)
⊢ ∀m n. 1 < m ⇒ (ordz m n = 0 ⇔ ∀k. 0 < k ⇒ n ** k MOD m ≠ 1)
⊢ ∀m n. 1 < m ⇒ (ordz m n = 0 ⇔ ∀j. 0 < j ∧ j < m ⇒ n ** j MOD m ≠ 1)
⊢ ∀m n. 0 < m ⇒ (ordz m n = 1 ⇔ n MOD m = 1 MOD m)
⊢ ∀m n. 1 < m ⇒ (ordz m n = 1 ⇔ n MOD m = 1)
⊢ ∀m n.
0 < m ∧ coprime m n ∧ (∀p. prime p ∧ p divides n ⇒ ordz m p = 1) ⇒
ordz m n = 1
⊢ ∀m n. 0 < m ∧ 1 < ordz m n ⇒ ∃p. prime p ∧ p divides n ∧ 1 < ordz m p
⊢ ∀m n. 0 < m ⇒ ordz m n ≤ m
⊢ ∀n j k. 1 < n ∧ 0 < j ∧ 1 < k ∧ k divides tops n j ⇒ ordz k n ≤ j
⊢ ∀k n m. 0 < k ∧ k < m ⇒ ordz k n < m
⊢ ∀m n k. 0 < m ∧ 0 < k ∧ k < ordz m n ⇒ n ** k MOD m ≠ 1
⊢ ∀m n. 0 < m ⇒ ordz m (n MOD m) = ordz m n
⊢ ∀m n. 0 < m ⇒ (ordz m n ≠ 0 ⇔ coprime m n)
⊢ ∀m n. 1 < m ⇒ (ordz m n ≠ 0 ⇔ ∃k. 0 < k ∧ n ** k MOD m = 1)
⊢ ∀m n. 0 < m ⇒ n ** ordz m n MOD m = 1 MOD m
⊢ ∀m n. 1 < m ⇒ n ** ordz m n MOD m = 1
⊢ ∀m n k.
1 < m ∧ 0 < k ⇒
(ordz m n = k ⇔ n ** k MOD m = 1 ∧ ∀j. 0 < j ∧ j < k ⇒ n ** j MOD m ≠ 1)
⊢ ∀m n k.
1 < m ∧ 0 < k ⇒
(ordz m n = k ⇔
n ** k MOD m = 1 ∧
∀j. 0 < j ∧ j < k ∧ j divides phi m ⇒ n ** j MOD m ≠ 1)
⊢ ∀m n k.
1 < m ∧ 0 < k ⇒
(ordz m n = k ⇔
k divides phi m ∧ n ** k MOD m = 1 ∧
∀j. 0 < j ∧ j < k ∧ j divides phi m ⇒ n ** j MOD m ≠ 1)
⊢ ∀m n k.
1 < m ⇒
(ordz m n = k ⇔
n ** k MOD m = 1 ∧
∀j. 0 < j ∧ j < (if k = 0 then m else k) ⇒ n ** j MOD m ≠ 1)
⊢ ∀m n k.
1 < m ∧ 0 < k ∧ n ** k MOD m = 1 ∧
(∀j. 0 < j ∧ j < k ∧ j divides phi m ⇒ n ** j MOD m ≠ 1) ⇒
∀j. 0 < j ∧ j < k ∧ ¬(j divides phi m) ⇒
ordz m n = k ∨ n ** j MOD m ≠ 1
⊢ ∀m n. 0 < m ⇒ ordz m n ≤ phi m
⊢ ∀m n. 1 < n ∧ coprime m n ∧ 1 < ordz m n ⇒ 1 < m
⊢ ∀m n k. 1 < m ∧ m divides n ∧ 1 < ordz k m ∧ coprime k n ⇒ 1 < n ∧ 1 < k
⊢ ∀n. (∀x. x ∈ (ZN n).carrier ⇔ x < n) ∧ (ZN n).sum.id = 0 ∧
(ZN n).prod.id = (if n = 1 then 0 else 1) ∧
(∀x y. (ZN n).sum.op x y = (x + y) MOD n) ∧
(∀x y. (ZN n).prod.op x y = x * y MOD n) ∧ FINITE (ZN n).carrier ∧
CARD (ZN n).carrier = n
⊢ ∀n. 0 < n ⇒ Ring (ZN n)
⊢ ∀n m x. 0 < m ∧ x ∈ (ZN n).carrier ⇒ x MOD m ∈ (ZN m).carrier
⊢ ∀n m.
0 < n ∧ m divides n ⇒ MonoidHomo (λx. x MOD m) (ZN n).prod (ZN m).prod
⊢ ∀n m. 0 < n ∧ m divides n ⇒ RingHomo (λx. x MOD m) (ZN n) (ZN m)
⊢ ∀n m. 0 < n ∧ m divides n ⇒ GroupHomo (λx. x MOD m) (ZN n).sum (ZN m).sum
⊢ ∀p. FINITE (ZP p).carrier
⊢ ∀p. prime p ⇒ FiniteIntegralDomain (ZP p)
⊢ ∀p. prime p ⇒ IntegralDomain (ZP p)
⊢ ∀z. z ∈ Z_add.carrier ⇒ Z_add.inv z = -z
⊢ ∀n. 0 < n ⇒
BIJ (λj. coset Z.sum (&j) (Z* n).sum.carrier) (ZN n).carrier
(Z / Z* n).carrier
⊢ ∀n j.
0 < n ∧ j ∈ (ZN n).carrier ⇒
coset Z.sum (&j) (Z* n).sum.carrier ∈ (Z / Z* n).carrier
⊢ ∀n. 0 < n ⇒
GroupHomo (λj. coset Z.sum (&j) (Z* n).sum.carrier) (ZN n).sum
(Z / Z* n).sum
⊢ ∀n. 0 < n ⇒
MonoidHomo (λj. coset Z.sum (&j) (Z* n).sum.carrier) (ZN n).prod
(Z / Z* n).prod
⊢ ∀n. (Z* n).sum << Z.sum
⊢ ∀n x y. 0 < n ∧ x < n ∧ y < n ∧ -&x + &y ∈ Z_multiple n ⇒ x = y
⊢ ∀n. 0 < n ⇒
RingIso (λj. coset Z.sum (&j) (Z* n).sum.carrier) (ZN n) (Z / Z* n)
⊢ ∀n. 0 < n ⇒
∀x. x ∈ Z.sum.carrier ⇒
∃y. cogen Z.sum (Z* n).sum (coset Z.sum x (Z* n).sum.carrier) =
x + &n * y
⊢ ∀n. 0 < n ⇒
∀p. coset Z.sum p (Z* n).sum.carrier =
coset Z.sum (p % &n) (Z* n).sum.carrier
⊢ ∀r. char r = 0 ⇔ ∀n. 0 < n ⇒ ##n ≠ #0
⊢ ∀r. 0 < char r ⇒ ∀n. 0 < n ∧ n < char r ⇒ ##n ≠ #0
⊢ ∀n. compute_ordz 0 n = ordz 0 n
⊢ ∀n. compute_ordz 1 n = 1
⊢ ∀m n. compute_ordz m n = ordz m n
⊢ ∀m n.
1 < m ∧ coprime m n ⇒
HOARE_SPEC (λi. 0 < i ∧ i ≤ ordz m n)
(WHILE (λi. n ** i MOD m ≠ 1) SUC) (λi. i = ordz m n)
datatype_ring
⊢ DATATYPE (record ring carrier sum prod)
⊢ ∀r f. EuclideanRing r f ⇒ ∀x. f x = 0 ⇔ x = #0
⊢ ∀r f. EuclideanRing r f ⇒ PrincipalIdealRing r
⊢ ∀r f.
EuclideanRing r f ⇒
∀x y.
x ∈ R ∧ y ∈ R ∧ y ≠ #0 ⇒
∃q t. q ∈ R ∧ t ∈ R ∧ x = q * y + t ∧ f t < f y
⊢ ∀r f. EuclideanRing r f ⇒ Ring r
⊢ ∀r. FiniteIntegralDomain r ⇒ Group f*
⊢ ∀r. FiniteIntegralDomain r ⇒ monoid_invertibles r.prod = R+
⊢ ∀r. FiniteIntegralDomain r ⇒ monoid_invertibles f* = F*
⊢ ∀r. FiniteIntegralDomain r ⇒ ∀x. x ∈ R+ ⇒ ∃k. 0 < k ∧ x ** k = #1
⊢ ∀r. FiniteRing r ⇒ FiniteAbelianGroup r.sum ∧ r.sum.carrier = R
⊢ ∀r. FiniteRing r ⇒ FiniteGroup r.sum ∧ r.sum.carrier = R
⊢ ∀r. FiniteRing r ⇒ (CARD R = 1 ⇔ #1 = #0)
⊢ ∀r. FiniteRing r ⇒ 0 < CARD R
⊢ ∀r. FiniteRing r ∧ prime (CARD R) ⇒ char r = CARD R
⊢ ∀r. FiniteRing r ⇒ 0 < char r ∧ char r = order r.sum #1
⊢ ∀r. FiniteRing r ⇒
∀n. char r = n ⇔ 0 < n ∧ ##n = #0 ∧ ∀m. 0 < m ∧ m < n ⇒ ##m ≠ #0
⊢ ∀r. FiniteRing r ⇒ char r divides CARD R
⊢ ∀r. FiniteRing r ⇒ 0 < char r
⊢ ∀r. FiniteRing r ⇒ Ring r
⊢ ∀r. FiniteRing r ⇒ FiniteAbelianMonoid r.prod
⊢ ∀r. FiniteRing r ⇒ FiniteMonoid r.prod
⊢ ∀r f. Ring r ∧ INJ f R 𝕌(:β) ⇒ RingHomo f r (homo_ring r f)
⊢ ∀r f.
fR = IMAGE f R ∧ (homo_ring r f).sum = homo_group r.sum f ∧
(homo_ring r f).prod = homo_group r.prod f
⊢ ∀r f. Ring r ∧ RingHomo f r (homo_ring r f) ⇒ Ring (homo_ring r f)
⊢ ∀r s f. (r ~r~ s) f ⇒ subring (homo_ring r f) s
⊢ ∀r i. i << r ∧ r << i ⇒ i = r
⊢ ∀r i. Ring r ∧ i << r ⇒ (SING I ⇔ i = <#0>)
⊢ ∀r i. i << r ⇒ i.sum.carrier = I ∧ i.prod.carrier = I
⊢ ∀r i. Ring r ∧ i << r ⇒ ∀x. x ∈ R/I ⇒ gen x ∈ R ∧ gen x ∘ I = x
⊢ ∀r i. Ring r ∧ i << r ⇒ ∀x y. x ∈ I ∧ y ∈ R ⇒ (y ∈ I ⇔ x === y)
⊢ ∀r i. Ring r ∧ i << r ⇒ $=== equiv_on R
⊢ ∀r i.
Ring r ∧ i << r ⇒
∀x y. x ∈ I ∧ y ∈ I ⇒ (x === y ⇔ inCoset r.sum i.sum x y)
⊢ ∀r i.
Ring r ∧ i << r ⇒
∀x y z. x ∈ R ∧ y ∈ R ∧ z ∈ R ⇒ x === y ⇒ z * x === z * y
⊢ ∀r i. Ring r ∧ i << r ⇒ ∀x. x ∈ R ⇒ x === x
⊢ ∀r i. Ring r ∧ i << r ⇒ ∀x y. x ∈ R ∧ y ∈ R ⇒ (x === y ⇔ y === x)
⊢ ∀r i.
Ring r ∧ i << r ⇒
∀x y z. x ∈ R ∧ y ∈ R ∧ z ∈ R ⇒ x === y ∧ y === z ⇒ x === z
⊢ ∀r i. Ring r ∧ i << r ⇒ ∀x y. x ∈ R ∧ y ∈ R ⇒ x ∘ I + y ∘ I = (x + y) ∘ I
⊢ ∀r i x. Ring r ∧ i << r ∧ x ∈ R ⇒ ∀z. z ∈ x ∘ I ⇔ ∃y. y ∈ I ∧ z = x + y
⊢ ∀r i. Ring r ∧ i << r ⇒ ∀x y. x ∈ R ∧ y ∈ R ⇒ (x ∘ I = y ∘ I ⇔ x − y ∈ I)
⊢ ∀r i. Ring r ∧ i << r ⇒ ∀x. x ∈ R ∧ x ∘ I = I ⇔ x ∈ I
⊢ ∀r i. Ring r ∧ i << r ⇒ ∀x y. x ∈ R ∧ y ∈ R ⇒ (x ∘ I = y ∘ I ⇔ x === y)
⊢ ∀r i. Ring r ∧ i << r ⇒ ∀x. x ∈ R ⇒ gen (x ∘ I) − x ∈ I
⊢ ∀r i. Ring r ∧ i << r ⇒ ∀x y. x ∈ R ∧ y ∈ R ⇒ x ∘ I * y ∘ I = (x * y) ∘ I
⊢ ∀r i. Ring r ∧ i << r ⇒ ∀x. x ∈ R ⇒ x ∘ I + -x ∘ I = I
⊢ ∀r i. Ring r ∧ i << r ⇒ ∀x. x ∈ I ⇒ x ∘ I = I
⊢ ∀r i. Ring r ∧ i << r ⇒ ∀x. x ∈ R ⇒ x ∘ I ∈ R/I ∧ gen (x ∘ I) ∘ I = x ∘ I
⊢ ∀r i. Ring r ∧ i << r ⇒ #0 ∘ I = I
⊢ ∀r i. i << r ⇒ ∀x. x ∈ I ⇒ x ∈ r.sum.carrier
⊢ ∀r i. Ring r ∧ i << r ⇒ ∀x. x ∈ I ⇒ x ∈ R
⊢ ∀r i j. Ring r ∧ i << r ∧ j << r ⇒ (i = j ⇔ I = J)
⊢ ∀r i.
Ring r ∧ i << r ∧ i ≠ <#0> ⇒
∀f. (∀x. f x = 0 ⇔ x = #0) ⇒
∃p. p ∈ I ∧ p ≠ #0 ∧ ∀z. z ∈ I ∧ z ≠ #0 ⇒ f p ≤ f z
⊢ ∀r i.
Ring r ∧ i << r ∧ i ≠ <#0> ⇒
∀f. (∀x. f x = 0 ⇔ x = #0) ⇒
∀z. z ∈ I ⇒ (f z < f (ideal_gen r i f) ⇔ z = #0)
⊢ ∀r i. Ring r ∧ i << r ⇒ ∀x y. x ∈ I ∧ y ∈ I ⇒ x − y ∈ I
⊢ ∀r i. i << r ⇒ ∀x y. x ∈ I ∧ y ∈ R ⇒ x * y ∈ I
⊢ ∀r i. Ring r ∧ i << r ⇒ ∀x. x ∈ I ⇒ -x ∈ I
⊢ ∀r i. Ring r ∧ i << r ∧ #1 ∈ I ⇒ I = R
⊢ ∀r i. Ring r ∧ i << r ⇒ ∀p. p ∈ R ⇒ (p ∈ I ⇔ <p> << i)
⊢ ∀r i. Ring r ∧ i << r ⇒ ∀x y. x ∈ I ∧ y ∈ I ⇒ x * y ∈ I
⊢ ∀r i. i << r ⇒ i.sum ≤ r.sum
⊢ ∀r i. Ring r ∧ i << r ⇒ ∀x y. x ∈ I ∧ y ∈ I ⇒ x + y ∈ I
⊢ ∀r i. Ring r ∧ i << r ⇒ #0 ∈ I
⊢ ∀r i. Ring r ∧ i << r ⇒ I ∈ R/I
⊢ ∀r i. i << r ⇒ i.sum.op = $+ ∧ i.prod.op = $*
⊢ ∀r i. i << r ⇒ ∀x y. x ∈ I ∧ y ∈ R ⇒ x * y ∈ I ∧ y * x ∈ I
⊢ ∀r i. Ring r ∧ i << r ⇒ ∀x y. x ∈ I ∧ y ∈ I ⇒ x + y ∈ I ∧ x * y ∈ I
⊢ ∀r i j. Ring r ∧ i << r ∧ j << r ⇒ (i << j ⇔ I ⊆ J)
⊢ ∀r i. Ring r ∧ i << r ⇒ i << i
⊢ ∀r i j. Ring r ∧ i << r ∧ j << r ⇒ i.sum ≤ (i + j).sum
⊢ ∀r i j. Ring r ∧ i << r ∧ j << r ⇒ i + j = j + i
⊢ ∀i j x. x ∈ (i + j).carrier ⇔ ∃y z. y ∈ I ∧ z ∈ J ∧ x = y + z
⊢ ∀r i j. Ring r ∧ i << r ∧ j << r ⇒ Group (i + j).sum
⊢ ∀r i j. Ring r ∧ i << r ∧ j << r ⇒ i << (i + j)
⊢ ∀r i j. Ring r ∧ i << r ∧ j << r ⇒ j << (i + j)
⊢ ∀r i j. Ring r ∧ i << r ∧ j << r ⇒ (i + j) << r
⊢ ∀r i j. Ring r ∧ i << r ∧ j << r ⇒ ((i + j) << j ⇔ i << j)
⊢ ∀r i j. Ring r ∧ i << r ∧ j << r ⇒ (i + j).sum ≤ r.sum
⊢ ∀r. Ring r ⇒ ∀i. i << r ∧ #1 ∈ I ⇔ i = r
⊢ ∀r i. Ring r ∧ i << r ⇒ ∀x. x ∈ I ∧ unit x ⇒ i = r
⊢ ∀r i. Ring r ∧ i << r ⇒ i.sum.id = #0
⊢ ∀r. IntegralDomain r ⇒ char r = 0 ∨ prime (char r)
⊢ ∀r p x.
IntegralDomain r ∧ x ∈ R ∧ p ∈ R ∧ p ≠ #0 ∧ rprime p ∧ p ∉ R* ∧
x ∉ R* ∧ x rdivides p ⇒
rassoc x p
⊢ ∀r. IntegralDomain r ⇒
∀x. x ∈ R+ ⇒ ∀m n. m < n ∧ x ** m = x ** n ⇒ x ** (n − m) = #1
⊢ ∀r. IntegralDomain r ⇒ ∀x. x ∈ R ⇒ ∀n. x ** n = #0 ⇔ n ≠ 0 ∧ x = #0
⊢ ∀r. IntegralDomain r ⇒ ∀x. x ∈ R+ ⇒ ∀n. x ** n ∈ R+
⊢ ∀r. IntegralDomain r ⇒ Ring r
⊢ ∀r. IntegralDomain r ⇒
∀x y. x ∈ R ∧ y ∈ R ⇒ (x * y = #0 ⇔ x = #0 ∨ y = #0)
⊢ ∀r. IntegralDomain r ⇒
∀x y z. x ∈ R ∧ y ∈ R ∧ z ∈ R ⇒ (x * y = x * z ⇔ x = #0 ∨ y = z)
⊢ ∀r. IntegralDomain r ⇒ ∀x y. x ∈ R+ ∧ y ∈ R+ ⇒ x * y ∈ R+
⊢ ∀r. IntegralDomain r ⇒
∀x y z. x ∈ R ∧ y ∈ R ∧ z ∈ R ⇒ (y * x = z * x ⇔ x = #0 ∨ y = z)
⊢ ∀r. IntegralDomain r ⇒ Monoid f*
⊢ ∀r. IntegralDomain r ⇒ F* = R+
⊢ ∀r. IntegralDomain r ⇒ Monoid (monoid_of_ring_nonzero_mult r)
⊢ ∀r. IntegralDomain r ⇒ F* = R+ ∧ f*.id = #1 ∧ f*.op = $* ∧ f*.exp = $**
⊢ ∀r. IntegralDomain r ⇒ ∀x. order r.prod x = order f* x
⊢ ∀r. IntegralDomain r ⇒ #1 ≠ #0
⊢ ∀r. IntegralDomain r ⇒ #1 ∈ R+
⊢ ∀r. FiniteIntegralDomain r ⇒ ∀x. x ∈ R ⇒ (order f* x = 0 ⇔ x = #0)
⊢ ∀r. FiniteIntegralDomain r ⇒ ∀x. x ∈ R+ ⇒ order f* x ≠ 0
⊢ ∀r. IntegralDomain r ⇒ order f* #0 = 0
⊢ IntegralDomain r ⇒
∀l1 l2.
(∀m. MEM m l1 ⇒ m ∈ R ∧ rprime m ∧ m ≠ #0 ∧ m ∉ R* ) ∧
(∀m. MEM m l2 ⇒ m ∈ R ∧ rprime m ∧ m ≠ #0 ∧ m ∉ R* ) ∧
rassoc (GBAG r.prod (LIST_TO_BAG l1)) (GBAG r.prod (LIST_TO_BAG l2)) ⇒
∃l3. PERM l2 l3 ∧ LIST_REL rassoc l1 l3
⊢ IntegralDomain r ∧ Ring s ∧ RingIso f r s ⇒ IntegralDomain s
⊢ ∀r. IntegralDomain r ⇒ #0 ∉ R*
⊢ ∀r. IntegralDomain r ⇒
∀x y. x ∈ R ∧ y ∈ R ⇒ (x * y = #0 ⇔ x = #0 ∨ y = #0)
⊢ ∀r. Ring r ∧ #1 ≠ #0 ⇒ ∀p s. p ∈ R ∧ unit s ⇒ (atom p ⇔ atom (s * p))
⊢ ∀r z.
atom z ⇒
z ∈ R+ ∧ z ∉ R* ∧ ∀p. p ∈ R ∧ p rdivides z ⇒ rassoc z p ∨ unit p
⊢ ∀r r_ f x.
x ∈ (kernel_ideal f r r_).carrier ⇔ x ∈ r.sum.carrier ∧ f x = #0_
⊢ ∀r r_ f.
(r ~r~ r_) f ⇒
(let
i = kernel_ideal f r r_
in
∀x y.
x ∈ R/I ∧ y ∈ R/I ⇒
f (gen ((gen x + gen y) ∘ I)) = f (gen x) +_ f (gen y))
⊢ ∀r r_ f.
(r ~r~ r_) f ⇒ (let i = kernel_ideal f r r_ in f (gen (#1 ∘ I)) = #1_)
⊢ ∀r r_ f.
(r ~r~ r_) f ⇒
(let
i = kernel_ideal f r r_
in
∀x y.
x ∈ R/I ∧ y ∈ R/I ⇒
f (gen ((gen x * gen y) ∘ I)) = f (gen x) *_ f (gen y))
⊢ ∀r r_ f.
(r ~r~ r_) f ⇒
(let i = kernel_ideal f r r_ in BIJ (f ∘ gen) R/I (IMAGE f R))
⊢ ∀r r_ f.
(r ~r~ r_) f ⇒
(let
i = kernel_ideal f r r_
in
∀x y. x ∈ R/I ∧ y ∈ R/I ⇒ (gen x − gen y ∈ I ⇔ x = y))
⊢ ∀r s f.
(r ~r~ s) f ⇒
(let
i = kernel_ideal f r s
in
RingHomo (f ∘ gen) (r / i) (ring_homo_image f r s))
⊢ ∀r r_ f.
(r ~r~ r_) f ⇒
(let i = kernel_ideal f r r_ in INJ (f ∘ gen) R/I (IMAGE f R))
⊢ ∀r s f.
(r ~r~ s) f ⇒
(let
i = kernel_ideal f r s
in
RingIso (f ∘ gen) (r / i) (ring_homo_image f r s))
⊢ ∀r r_ f.
(r ~r~ r_) f ⇒
(let i = kernel_ideal f r r_ in SURJ (f ∘ gen) R/I (IMAGE f R))
⊢ ∀r s f. (kernel_ideal f r s).sum = kernel_group f r.sum s.sum
⊢ ∀m n. order (times_mod m) n = compute_ordz m n
⊢ ∀r p. IntegralDomain r ∧ p ∈ R ∧ rprime p ∧ p ≠ #0 ∧ p ∉ R* ⇒ atom p
⊢ ∀p x. x ∈ <p>.carrier ⇔ ∃z. z ∈ R ∧ x = p * z
⊢ ∀r. Ring r ⇒ ∀p. p ∈ R ⇒ ∀x. x ∈ <p>.carrier ⇔ p rdivides x
⊢ ∀r. Ring r ⇒ ∀p q u. p ∈ R ∧ q ∈ R ∧ unit u ∧ p = q * u ⇒ <p> = <q>
⊢ ∀r. IntegralDomain r ⇒
∀p q. p ∈ R ∧ q ∈ R ⇒ (<p> = <q> ⇔ ∃u. unit u ∧ p = q * u)
⊢ ∀r. Ring r ⇒ ∀p. p ∈ R ⇒ Group <p>.sum
⊢ ∀r. Ring r ⇒ ∀p. p ∈ R ⇒ p ∈ <p>.carrier
⊢ ∀r. Ring r ⇒ ∀p q. p ∈ R ∧ q ∈ <p>.carrier ⇒ <q> << <p>
⊢ ∀r. Ring r ⇒ ∀p. p ∈ R ⇒ <p> << r
⊢ ∀r p.
<p>.carrier = p * R ∧ <p>.sum.carrier = p * R ∧
<p>.prod.carrier = p * R ∧ <p>.sum.op = $+ ∧ <p>.prod.op = $* ∧
<p>.sum.id = #0 ∧ <p>.prod.id = #1
⊢ ∀r. PrincipalIdealRing r ⇒ ∀p. atom p ⇒ rprime p
⊢ ∀r. PrincipalIdealRing r ⇒ ∀p. atom p ⇒ maxi <p>
⊢ ∀r. PrincipalIdealRing r ⇒ ∀p. atom p ⇒ rprime p
⊢ ∀r. Ring r ⇒ ∀p q. p ∈ R ∧ q ∈ R ⇒ (q rdivides p ⇔ <p> << <q>)
⊢ ∀r. Ring r ⇒ ∀p. p ∈ R ⇒ <p>.sum ≤ r.sum
⊢ ∀r. Ring r ⇒ ∀p. p ∈ R ⇒ <p>.sum << r.sum
⊢ ∀r i. Ring r ∧ i << r ⇒ ∀p. p ∈ I ⇒ <p> + i = i
⊢ ∀r i. Ring r ∧ i << r ⇒ ∀p. p ∈ I ⇔ p ∈ R ∧ <p> + i = i
⊢ ∀r. Ring r ∧ i << r ⇒ AbelianGroup (quotient_ring_add r i)
⊢ ∀r i.
Ring r ∧ i << r ⇒
∀x y z. x ∈ R/I ∧ y ∈ R/I ∧ z ∈ R/I ⇒ x + y + z = x + (y + z)
⊢ ∀r i. Ring r ∧ i << r ⇒ ∀x y. x ∈ R/I ∧ y ∈ R/I ⇒ x + y = y + x
⊢ ∀r i. Ring r ∧ i << r ⇒ ∀x y. x ∈ R/I ∧ y ∈ R/I ⇒ x + y ∈ R/I
⊢ ∀r i. Ring r ∧ i << r ⇒ Group (quotient_ring_add r i)
⊢ ∀r i. Ring r ∧ i << r ⇒ ∀x. x ∈ R/I ⇒ I + x = x
⊢ ∀r i. Ring r ∧ i << r ⇒ ∀x. x ∈ R/I ⇒ ∃y. y ∈ R/I ∧ y + x = I
⊢ ∀r. Ring r ⇒ ∀p. p ∈ R ⇒ Ring (r / <p>)
⊢ ∀r i. Ring r ∧ i << r ⇒ ∀z. z ∈ R/I ⇔ ∃x. x ∈ R ∧ z = x ∘ I
⊢ ∀r i. Ring r ∧ i << r ⇒ I ∈ R/I
⊢ ∀r i. Ring r ∧ i << r ⇒ RingHomo (λx. x ∘ I) r (r / i)
⊢ ∀r i. Ring r ∧ i << r ⇒ kernel (λx. x ∘ I) r.sum (r / i).sum = I
⊢ ∀r i.
Ring r ∧ i << r ⇒
RingHomo (λx. x ∘ I) r (r / i) ∧ kernel_ideal (λx. x ∘ I) r (r / i) = i
⊢ ∀r i. Ring r ∧ i << r ⇒ SURJ (λx. x ∘ I) R R/I
⊢ ∀r. Ring r ∧ i << r ⇒ AbelianMonoid (quotient_ring_mult r i)
⊢ ∀r i.
Ring r ∧ i << r ⇒
∀x y z. x ∈ R/I ∧ y ∈ R/I ∧ z ∈ R/I ⇒ x * y * z = x * (y * z)
⊢ ∀r i. Ring r ∧ i << r ⇒ ∀x y. x ∈ R/I ∧ y ∈ R/I ⇒ x * y = y * x
⊢ ∀r i. Ring r ∧ i << r ⇒ ∀x y. x ∈ R/I ∧ y ∈ R/I ⇒ x * y ∈ R/I
⊢ ∀r i. Ring r ∧ i << r ⇒ ∀x. x ∈ R/I ⇒ #1 ∘ I * x = x ∧ x * #1 ∘ I = x
⊢ ∀r i.
Ring r ∧ i << r ⇒
∀x y z. x ∈ R/I ∧ y ∈ R/I ∧ z ∈ R/I ⇒ x * (y + z) = x * y + x * z
⊢ ∀r i. Ring r ∧ i << r ⇒ Monoid (quotient_ring_mult r i)
⊢ ∀r i.
(r / i).carrier = R/I ∧ (r / i).sum = quotient_ring_add r i ∧
(r / i).prod = quotient_ring_mult r i
⊢ ∀r i. Ring r ∧ i << r ⇒ Ring (r / i)
⊢ ∀r. Ring r ⇒ (r / r).carrier = {R}
ring_11
⊢ ∀a0 a1 a2 a0' a1' a2'.
ring a0 a1 a2 = ring a0' a1' a2' ⇔ a0 = a0' ∧ a1 = a1' ∧ a2 = a2'
ring_Axiom
⊢ ∀f. ∃fn. ∀a0 a1 a2. fn (ring a0 a1 a2) = f a0 a1 a2
ring_accessors
⊢ (∀f m m0. (ring f m m0).carrier = f) ∧ (∀f m m0. (ring f m m0).sum = m) ∧
∀f m m0. (ring f m m0).prod = m0
ring_accfupds
⊢ (∀r f. (r with sum updated_by f).carrier = R) ∧
(∀r f. (r with prod updated_by f).carrier = R) ∧
(∀r f. (r with carrier updated_by f).sum = r.sum) ∧
(∀r f. (r with prod updated_by f).sum = r.sum) ∧
(∀r f. (r with carrier updated_by f).prod = r.prod) ∧
(∀r f. (r with sum updated_by f).prod = r.prod) ∧
(∀r f. (r with carrier updated_by f).carrier = f R) ∧
(∀r f. (r with sum updated_by f).sum = f r.sum) ∧
∀r f. (r with prod updated_by f).prod = f r.prod
⊢ ∀r. Ring r ⇒ AbelianGroup r.sum
ring_add_assoc
⊢ ∀r. Ring r ⇒ ∀x y z. x ∈ R ∧ y ∈ R ∧ z ∈ R ⇒ x + y + z = x + (y + z)
⊢ ∀r. Ring r ⇒ ∀x y z. x ∈ R ∧ y ∈ R ∧ z ∈ R ⇒ x + (y + z) = y + (x + z)
⊢ ∀r. Ring r ∧ char r = 2 ⇒ ∀x y. x ∈ R ∧ y ∈ R ⇒ x + y = x − y
⊢ ∀r. Ring r ⇒ ∀x y. x ∈ R ∧ y ∈ R ⇒ x + y = y + x
ring_add_element
⊢ ∀r. Ring r ⇒ ∀x y. x ∈ R ∧ y ∈ R ⇒ x + y ∈ R
ring_add_eq_zero
⊢ ∀r. Ring r ⇒ ∀x y. x ∈ R ∧ y ∈ R ⇒ (x + y = #0 ⇔ y = -x)
⊢ ∀r. Ring r ⇒ ∀x. x ∈ R ⇒ ∀n. r.sum.exp x n = x * ##n
⊢ ∀r. Ring r ⇒
Group r.sum ∧ r.sum.carrier = R ∧ ∀x y. x ∈ R ∧ y ∈ R ⇒ x + y = y + x
⊢ ∀r. Ring r ⇒ Group r.sum ∧ r.sum.carrier = R
ring_add_lcancel
⊢ ∀r. Ring r ⇒ ∀x y z. x ∈ R ∧ y ∈ R ∧ z ∈ R ⇒ (x + y = x + z ⇔ y = z)
ring_add_lneg
⊢ ∀r. Ring r ⇒ ∀x. x ∈ R ⇒ -x + x = #0
ring_add_lneg_assoc
⊢ ∀r. Ring r ⇒ ∀x y. x ∈ R ∧ y ∈ R ⇒ y = x + (-x + y) ∧ y = -x + (x + y)
ring_add_lzero
⊢ ∀r. Ring r ⇒ ∀x. x ∈ R ⇒ #0 + x = x
⊢ ∀r. Ring r ⇒
∀x y p q.
x ∈ R ∧ y ∈ R ∧ p ∈ R ∧ q ∈ R ⇒ x + y − (p + q) = x − p + (y − q)
ring_add_rcancel
⊢ ∀r. Ring r ⇒ ∀x y z. x ∈ R ∧ y ∈ R ∧ z ∈ R ⇒ (y + x = z + x ⇔ y = z)
ring_add_rneg
⊢ ∀r. Ring r ⇒ ∀x. x ∈ R ⇒ x + -x = #0
ring_add_rneg_assoc
⊢ ∀r. Ring r ⇒ ∀x y. x ∈ R ∧ y ∈ R ⇒ y = y + -x + x ∧ y = y + x + -x
ring_add_rzero
⊢ ∀r. Ring r ⇒ ∀x. x ∈ R ⇒ x + #0 = x
⊢ ∀r. Ring r ⇒ ∀x y. x ∈ R ∧ y ∈ R ⇒ x + y − y = x
⊢ ∀r. Ring r ⇒ ∀x y z. x ∈ R ∧ y ∈ R ∧ z ∈ R ⇒ x + y − z = x + (y − z)
⊢ ∀r. Ring r ⇒ ∀x y. x ∈ R ∧ y ∈ R ⇒ y + x − y = x
⊢ ∀r. Ring r ⇒
∀x y z t.
x ∈ R ∧ y ∈ R ∧ z ∈ R ∧ t ∈ R ⇒ (x + y = z + t ⇔ x − z = t − y)
ring_add_zero_zero
⊢ ∀r. Ring r ⇒ #0 + #0 = #0
⊢ ∀r p q x. Ring r ∧ rassoc p q ∧ q ∈ R ∧ p rdivides x ⇒ q rdivides x
⊢ ∀r p q x.
Ring r ∧ p ∈ R ∧ q ∈ R ∧ x ∈ R ∧ rassoc p q ⇒ rassoc (x * p) (x * q)
⊢ ∀r x. Ring r ∧ x ∈ R ⇒ rassoc x x
⊢ ∀r p q. Ring r ∧ q ∈ R ∧ rassoc p q ⇒ rassoc q p
⊢ ∀r x y z. Ring r ∧ z ∈ R ∧ rassoc x y ∧ rassoc y z ⇒ rassoc x z
⊢ ∀r f. Ring r ∧ RingAuto f r ⇒ f PERMUTES R
⊢ ∀r f1 f2.
Ring r ∧ (∀x. x ∈ R ⇒ f1 x = f2 x) ⇒ (RingAuto f1 r ⇔ RingAuto f2 r)
⊢ ∀r f. RingAuto f r ⇒ ∀x. x ∈ R ⇒ f x ∈ R
⊢ ∀r f. Ring r ∧ RingAuto f r ⇒ f #0 = #0 ∧ f #1 = #1
⊢ ∀r f. Ring r ∧ RingAuto f r ⇒ RingAuto (LINV f R) r
⊢ ∀r f. Ring r ∧ RingAuto f r ⇒ f #1 = #1
⊢ ∀r f. Ring r ∧ RingAuto f r ⇒ f #0 = #0
⊢ ∀r. Ring r ⇒
∀x y. x ∈ R ∧ y ∈ R ⇒ (x + y) ** 2 = x ** 2 + ##2 * (x * y) + y ** 2
⊢ ∀r. Ring r ⇒
∀x y.
x ∈ R ∧ y ∈ R ⇒
(x + y) ** 3 =
x ** 3 + ##3 * (x ** 2 * y) + ##3 * (x * y ** 2) + y ** 3
⊢ ∀r. Ring r ⇒
∀x y.
x ∈ R ∧ y ∈ R ⇒
(x + y) ** 4 =
x ** 4 + ##4 * (x ** 3 * y) + ##6 * (x ** 2 * y ** 2) +
##4 * (x * y ** 3) + y ** 4
⊢ ∀r. Ring r ⇒
∀x y.
x ∈ R ∧ y ∈ R ⇒
∀n. GENLIST
((λk. ##(binomial n k) * x ** SUC (n − k) * y ** k) ∘ SUC) n =
GENLIST
(λk. ##(binomial n (SUC k)) * x ** (n − k) * y ** SUC k) n
⊢ ∀r. Ring r ⇒
∀x y.
x ∈ R ∧ y ∈ R ⇒
∀n. (λk. ##(binomial (SUC n) k) * x ** (SUC n − k) * y ** k) ∘ SUC =
(λk. ##(binomial (SUC n) (SUC k)) * x ** (n − k) * y ** SUC k)
⊢ ∀r. Ring r ⇒
∀x y.
x ∈ R ∧ y ∈ R ⇒
∀n. (λk. x * k) ∘ (λk. ##(binomial n k) * x ** (n − k) * y ** k) =
(λk. ##(binomial n k) * x ** SUC (n − k) * y ** k)
⊢ ∀r. Ring r ⇒
∀x y.
x ∈ R ∧ y ∈ R ⇒
∀n. (λk. y * k) ∘ (λk. ##(binomial n k) * x ** (n − k) * y ** k) =
(λk. ##(binomial n k) * x ** (n − k) * y ** SUC k)
⊢ ∀r. Ring r ⇒
∀x y.
x ∈ R ∧ y ∈ R ⇒
∀n. (x + y) ** n =
rsum
(GENLIST (λk. ##(binomial n k) * x ** (n − k) * y ** k)
(SUC n))
⊢ ∀r. Ring r ⇒ r.sum.carrier = R ∧ r.prod.carrier = R
ring_case_cong
⊢ ∀M M' f.
M = M' ∧ (∀a0 a1 a2. M' = ring a0 a1 a2 ⇒ f a0 a1 a2 = f' a0 a1 a2) ⇒
ring_CASE M f = ring_CASE M' f'
ring_case_eq
⊢ ring_CASE x f = v ⇔ ∃f' m m0. x = ring f' m m0 ∧ f f' m m0 = v
⊢ ∀r. Ring r ∧ char r = 0 ⇒ INFINITE R
⊢ ∀r. Ring r ∧ char r = 1 ⇒ R = {#0}
⊢ ∀r. Ring r ∧ char r = 2 ⇒ ∀x. x ∈ R ⇒ x + x = #0
⊢ ∀r. Ring r ∧ char r = 2 ⇒ -#1 = #1
⊢ ∀r. Ring r ∧ char r = 2 ⇒ #1 + #1 = #0
⊢ ∀r. Ring r ⇒
∀n. 0 < n ⇒ (char r = n ⇔ ##n = #0 ∧ ∀m. 0 < m ∧ m < n ⇒ ##m ≠ #0)
⊢ ∀r. Ring r ⇒ ∀n. ##n = #0 ⇔ char r divides n
⊢ ∀r. Ring r ⇒ (char r = 1 ⇔ #1 = #0)
⊢ ∀r. Ring r ⇒
(prime (char r) ⇔
1 < char r ∧ ∀k. 0 < k ∧ k < char r ⇒ ##(binomial (char r) k) = #0)
⊢ ∀r. Ring r ∧ prime (char r) ⇒ RingEndo (λx. x ** char r) r
ring_component_equality
⊢ ∀r1 r2.
r1 = r2 ⇔ r1.carrier = r2.carrier ∧ r1.sum = r2.sum ∧ r1.prod = r2.prod
⊢ ∀r x y p.
Ring r ∧ rassoc x y ∧ p ∈ R ∧ y ∈ R ∧ p rdivides x ⇒ p rdivides y
⊢ ∀r. Ring r ⇒ ∀p. p ∈ R ⇒ #1 rdivides p
⊢ ∀r. Ring r ⇒ ∀p t. p ∈ R ∧ unit t ⇒ t rdivides p
⊢ ∀r r_ f.
(r =r= r_) f ⇒ ∀p q. p ∈ R ∧ p rdivides q ⇒ ring_divides r_ (f p) (f q)
⊢ ∀r f.
EuclideanRing r f ∧ ring_ordering r f ⇒
∀p q. p ∈ R ∧ q ∈ R ∧ p ≠ #0 ∧ q rdivides p ⇒ f q ≤ f p
⊢ ∀r. Ring r ⇒ ∀p. p ∈ R ⇒ p rdivides p
⊢ ∀r. Ring r ⇒
∀p q t.
p ∈ R ∧ q ∈ R ∧ t ∈ R ∧ p rdivides q ∧ q rdivides t ⇒ p rdivides t
⊢ ∀r. Ring r ⇒ ∀p. p ∈ R ⇒ p rdivides #0
⊢ ∀r. Ring r ⇒ ∀x y. x ∈ R ∧ y ∈ R ∧ x = y ⇒ x =~ y
ring_exp_1
⊢ ∀r. Ring r ⇒ ∀x. x ∈ R ⇒ x ** 1 = x
⊢ ∀x n. x ** SUC n = x * x ** n
ring_exp_add
⊢ ∀r. Ring r ⇒ ∀x. x ∈ R ⇒ ∀n k. x ** (n + k) = x ** n * x ** k
⊢ ∀r. Ring r ⇒
∀x y. x ∈ R ∧ y ∈ R ⇒ ∀n k. x ** n * (x ** k * y) = x ** (n + k) * y
ring_exp_comm
⊢ ∀r. Ring r ⇒ ∀x. x ∈ R ⇒ ∀n. x ** n * x = x * x ** n
ring_exp_element
⊢ ∀r. Ring r ⇒ ∀x. x ∈ R ⇒ ∀n. x ** n ∈ R
⊢ ∀r. Ring r ⇒
∀x. x ∈ R ∧ 0 < order r.prod x ⇒
∀n. x ** n = x ** (n MOD order r.prod x)
ring_exp_mult
⊢ ∀r. Ring r ⇒ ∀x. x ∈ R ⇒ ∀n k. x ** (n * k) = (x ** n) ** k
ring_exp_mult_comm
⊢ ∀r. Ring r ⇒ ∀x. x ∈ R ⇒ ∀m n. (x ** m) ** n = (x ** n) ** m
⊢ ∀r. Ring r ⇒
∀x. x ∈ R ⇒ ∀n. -x ** n = if EVEN n then x ** n else -(x ** n)
⊢ ∀r. Ring r ⇒
∀x. x ∈ R ⇒
x ** 0 = #1 ∧ x ** 1 = x ∧ x ** 2 = x * x ∧ x ** 3 = x * x ** 2 ∧
x ** 4 = x * x ** 3 ∧ x ** 5 = x * x ** 4 ∧ x ** 6 = x * x ** 5 ∧
x ** 7 = x * x ** 6 ∧ x ** 8 = x * x ** 7 ∧ x ** 9 = x * x ** 8
⊢ ∀r. Ring r ⇒ ∀x. x ∈ R ⇒ ∀n. x ** SUC n = x ** n * x
⊢ ∀r. Ring r ⇒
∀p q.
p ∈ R ∧ q ∈ R ∧ (∃k. k ∈ R ∧ p = k * q) ⇒
∀z. z ∈ R ∧ (∃s. s ∈ R ∧ z = s * p) ⇒ ∃t. t ∈ R ∧ z = t * q
⊢ ∀r. Ring r ∧ prime (char r) ⇒ ∀n k. ##n ** char r ** k = ##n
⊢ ∀r. Ring r ∧ prime (char r) ⇒ ∀n. ##n ** char r = ##n
⊢ ∀r r_ f.
(r ~r~ r_) f ⇒
(let
i = kernel_ideal f r r_
in
i << r ∧ ring_homo_image f r r_ ≤ r_ ∧
RingIso (f ∘ gen) (r / i) (ring_homo_image f r r_))
ring_fn_updates
⊢ (∀f0 f m m0. ring f m m0 with carrier updated_by f0 = ring (f0 f) m m0) ∧
(∀f0 f m m0. ring f m m0 with sum updated_by f0 = ring f (f0 m) m0) ∧
∀f0 f m m0. ring f m m0 with prod updated_by f0 = ring f m (f0 m0)
⊢ ∀r. Ring r ∧ prime (char r) ⇒
∀x y.
x ∈ R ∧ y ∈ R ⇒
∀n. (x + y) ** char r ** n = x ** char r ** n + y ** char r ** n
⊢ ∀r. Ring r ∧ prime (char r) ⇒
∀x y.
x ∈ R ∧ y ∈ R ⇒
∀n. (x − y) ** char r ** n = x ** char r ** n − y ** char r ** n
⊢ ∀r. Ring r ∧ prime (char r) ⇒
∀x y. x ∈ R ∧ y ∈ R ⇒ (x + y) ** char r = x ** char r + y ** char r
⊢ ∀r. Ring r ∧ prime (char r) ⇒
∀x y. x ∈ R ∧ y ∈ R ⇒ (x − y) ** char r = x ** char r − y ** char r
⊢ ∀r. Ring r ⇒ ∀a b. rfun a ∧ rfun b ⇒ rfun (λk. a k + b k)
⊢ ∀r. Ring r ⇒ ∀f. rfun f ⇒ ∀x. x ∈ R ⇒ rfun (λj. f j * x ** j)
⊢ ∀r. Ring r ⇒ ∀f. rfun f ⇒ ∀x. x ∈ R ⇒ ∀n. rfun (λj. (f j * x ** j) ** n)
⊢ ∀f. rfun f ⇒ ∀n. rlist (GENLIST f n)
⊢ ∀f l. rfun f ⇒ rlist (MAP f l)
ring_fupdcanon
⊢ (∀r g f.
r with <|sum updated_by f; carrier updated_by g|> =
r with <|carrier updated_by g; sum updated_by f|>) ∧
(∀r g f.
r with <|prod updated_by f; carrier updated_by g|> =
r with <|carrier updated_by g; prod updated_by f|>) ∧
∀r g f.
r with <|prod updated_by f; sum updated_by g|> =
r with <|sum updated_by g; prod updated_by f|>
ring_fupdcanon_comp
⊢ ((∀g f. sum_fupd f ∘ carrier_fupd g = carrier_fupd g ∘ sum_fupd f) ∧
∀h g f.
sum_fupd f ∘ carrier_fupd g ∘ h = carrier_fupd g ∘ sum_fupd f ∘ h) ∧
((∀g f. prod_fupd f ∘ carrier_fupd g = carrier_fupd g ∘ prod_fupd f) ∧
∀h g f.
prod_fupd f ∘ carrier_fupd g ∘ h = carrier_fupd g ∘ prod_fupd f ∘ h) ∧
(∀g f. prod_fupd f ∘ sum_fupd g = sum_fupd g ∘ prod_fupd f) ∧
∀h g f. prod_fupd f ∘ sum_fupd g ∘ h = sum_fupd g ∘ prod_fupd f ∘ h
ring_fupdfupds
⊢ (∀r g f.
r with <|carrier updated_by f; carrier updated_by g|> =
r with carrier updated_by f ∘ g) ∧
(∀r g f.
r with <|sum updated_by f; sum updated_by g|> =
r with sum updated_by f ∘ g) ∧
∀r g f.
r with <|prod updated_by f; prod updated_by g|> =
r with prod updated_by f ∘ g
ring_fupdfupds_comp
⊢ ((∀g f. carrier_fupd f ∘ carrier_fupd g = carrier_fupd (f ∘ g)) ∧
∀h g f. carrier_fupd f ∘ carrier_fupd g ∘ h = carrier_fupd (f ∘ g) ∘ h) ∧
((∀g f. sum_fupd f ∘ sum_fupd g = sum_fupd (f ∘ g)) ∧
∀h g f. sum_fupd f ∘ sum_fupd g ∘ h = sum_fupd (f ∘ g) ∘ h) ∧
(∀g f. prod_fupd f ∘ prod_fupd g = prod_fupd (f ∘ g)) ∧
∀h g f. prod_fupd f ∘ prod_fupd g ∘ h = prod_fupd (f ∘ g) ∘ h
⊢ ∀r f.
EuclideanRing r f ⇒
∀p q. p ∈ R ∧ q ∈ R ⇒ rgcd p q rdivides p ∧ rgcd p q rdivides q
⊢ ∀r f. EuclideanRing r f ⇒ ∀p q. p ∈ R ∧ q ∈ R ⇒ rgcd p q ∈ R
⊢ ∀r f.
EuclideanRing r f ⇒
∀p q.
p ∈ R ∧ q ∈ R ⇒
rgcd p q rdivides p ∧ rgcd p q rdivides q ∧
∀d. d ∈ R ∧ d rdivides p ∧ d rdivides q ⇒ d rdivides rgcd p q
⊢ ∀r f.
EuclideanRing r f ⇒
∀p q. p ∈ R ∧ q ∈ R ⇒ ∃a b. a ∈ R ∧ b ∈ R ∧ rgcd p q = a * p + b * q
⊢ ∀r f.
EuclideanRing r f ⇒
∀p q.
p ∈ R ∧ q ∈ R ⇒
∀d. d ∈ R ∧ d rdivides p ∧ d rdivides q ⇒ d rdivides rgcd p q
⊢ ∀r f. EuclideanRing r f ⇒ ∀p q. p ∈ R ∧ q ∈ R ⇒ rgcd p q = rgcd q p
⊢ ∀r f p. rgcd p #0 = p ∧ rgcd #0 p = p
⊢ ∀r r_ f. (r ~r~ r_) f ⇒ ∀x y. x ∈ R ∧ y ∈ R ⇒ f (x + y) = f x +_ f y
⊢ ∀r r_ f. (r ~r~ r_) f ⇒ char r_ divides char r
⊢ ∀r s t f1 f2. RingHomo f1 r s ∧ RingHomo f2 s t ⇒ RingHomo (f2 ∘ f1) r t
⊢ ∀r r_ f1 f2.
Ring r ∧ Ring r_ ∧ (∀x. x ∈ R ⇒ f1 x = f2 x) ⇒
(RingHomo f1 r r_ ⇔ RingHomo f2 r r_)
⊢ ∀r r_ f. RingHomo f r r_ ⇒ ∀x. x ∈ R ⇒ f x ∈ R_
⊢ ∀r r_ f. (r ~r~ r_) f ∧ INJ f R R_ ⇒ ∀x. x ∈ R ⇒ (f x = #0_ ⇔ x = #0)
⊢ ∀r r_ f. (r ~r~ r_) f ⇒ ∀x. x ∈ R ⇒ ∀n. f (x ** n) = f x **_ n
⊢ ∀r s f. (r ~r~ s) f ⇒ ∀i. i << r ⇒ Group (homo_ideal f r s i).sum
⊢ ∀r s f.
Ring r ∧ Ring s ∧ RingHomo f r s ∧ SURJ f R s.carrier ⇒
∀i. i << r ⇒ homo_ideal f r s i << s
⊢ ∀r s f. (r ~r~ s) f ⇒ ∀i. i << r ⇒ (homo_ideal f r s i).sum ≤ s.sum
⊢ ∀r r_ f. (r ~r~ r_) f ⇒ f #0 = #0_ ∧ f #1 = #1_
⊢ ∀r r_ f.
(r ~r~ r_) f ∧ INJ f R R_ ⇒ BIJ f R (ring_homo_image f r r_).carrier
⊢ ∀r r_ f. (ring_homo_image f r r_).carrier = IMAGE f R
⊢ ∀r r_ f. (r ~r~ r_) f ⇒ RingHomo f r (ring_homo_image f r r_)
⊢ ∀r r_ f. (r ~r~ r_) f ⇒ subring (ring_homo_image f r r_) r_
⊢ ∀r r_ f. (r ~r~ r_) f ∧ INJ f R R_ ⇒ RingIso f r (ring_homo_image f r r_)
⊢ ∀r r_ f. (r ~r~ r_) f ⇒ Ring (ring_homo_image f r r_)
⊢ ∀r r_ f. (r ~r~ r_) f ⇒ ring_homo_image f r r_ ≤ r_
⊢ ∀r r_ f.
(r ~r~ r_) f ⇒
∀s. Ring s ∧ subring s r ⇒ subring (ring_homo_image f s r_) r_
⊢ ∀r r_ f.
Ring r ∧ Ring r_ ∧ SURJ f R R_ ⇒ RingIso I r_ (ring_homo_image f r r_)
⊢ ∀r r_ f. (r ~r~ r_) f ⇒ ∀x. unit x ⇒ f ( |/ x) = |/_ (f x)
⊢ ∀f r s. (r ~r~ s) f ⇒ kernel_ideal f r s << r
⊢ ∀r r_ f. (r ~r~ r_) f ∧ BIJ f R R_ ⇒ RingHomo (LINV f R) r_ r
⊢ ∀r r_ f. (r ~r~ r_) f ⇒ ∀x y. x ∈ R ∧ y ∈ R ⇒ f (x * y) = f x *_ f y
⊢ ∀r r_ f. (r ~r~ r_) f ⇒ ∀x. x ∈ R ⇒ f (-x) = $-_ (f x)
⊢ ∀r r_ f. (r ~r~ r_) f ⇒ ∀n. f (##n) = ##_ #1_ n
⊢ ∀r r_ f.
(r ~r~ r_) f ⇒ ∀c. 0 < c ∧ c < char r_ ⇒ ##c ≠ #0 ∧ f (##c) ≠ #0_
⊢ ∀r r_ f. (r ~r~ r_) f ⇒ f #1 = #1_
⊢ ∀r r_ f. (r ~r~ r_) f ∧ #1 = #0 ⇒ #1_ = #0_
⊢ ∀r r_ f.
Ring r ∧ RingHomo f r r_ ⇒
∀x y. x ∈ R ∧ y ∈ R ⇒ f (x + y) = f x +_ f y ∧ f (x * y) = f x *_ f y
⊢ ∀r r_ f. (r ~r~ r_) f ⇒ subring (ring_homo_image f r r_) r_
⊢ ∀r r_ f. (r ~r~ r_) f ⇒ ∀x y. x ∈ R ∧ y ∈ R ⇒ f (x − y) = f x -_ f y
⊢ ∀r s r_ f. (r ~r~ r_) f ∧ s ≤ r ⇒ (s ~r~ ring_homo_image f s r_) f
⊢ ∀r r_ f.
(r ~r~ r_) f ⇒ ∀c. 0 < c ∧ c < char r_ ⇒ ##c ≠ #0 ∧ ##_ #1_ c ≠ #0_
⊢ ∀r r_ f. (r ~r~ r_) f ∧ BIJ f R R_ ⇒ RingHomo (LINV f R) r_ r
⊢ Ring r ∧ Ring s ∧ RingHomo f r s ∧
(∀x. x ∈ s.carrier ⇒ i x ∈ R ∧ f (i x) = x) ∧ (∀x. x ∈ R ⇒ i (f x) = x) ⇒
RingHomo i s r
⊢ ∀r s t f1 f2. RingHomo f1 r s ∧ RingHomo f2 s t ⇒ RingHomo (f2 ∘ f1) r t
⊢ ∀r r_ f. (r ~r~ r_) f ⇒ ∀x. unit x ⇒ unit_ (f x)
⊢ ∀r r_ f. (r ~r~ r_) f ⇒ ∀x. unit x ⇒ |/_ (f x) = f ( |/ x)
⊢ ∀r r_ f. (r ~r~ r_) f ⇒ ∀x. unit x ⇒ |/_ (f x) ∈ R_
⊢ ∀r r_ f. (r ~r~ r_) f ∧ #1_ ≠ #0_ ⇒ ∀x. unit x ⇒ |/_ (f x) ≠ #0_
⊢ ∀r r_ f. (r ~r~ r_) f ∧ #1_ ≠ #0_ ⇒ ∀x. unit x ⇒ f x ≠ #0_
⊢ ∀r r_ f. (r ~r~ r_) f ⇒ f #0 = #0_
ring_induction
⊢ ∀P. (∀f m m0. P (ring f m m0)) ⇒ ∀r. P r
⊢ ∀r f.
Ring r ⇒
ring_inj_image r f =
<|carrier := IMAGE f R; sum := monoid_inj_image r.sum f;
prod := monoid_inj_image r.prod f|>
⊢ ∀r f. (ring_inj_image r f).carrier = IMAGE f R
⊢ ∀r f. Ring r ∧ INJ f R 𝕌(:β) ⇒ AbelianMonoid (ring_inj_image r f).prod
⊢ ∀r f. Ring r ∧ INJ f R 𝕌(:β) ⇒ Monoid (ring_inj_image r f).prod
⊢ ∀r f.
Ring r ∧ INJ f R 𝕌(:β) ⇒ MonoidHomo f r.prod (ring_inj_image r f).prod
⊢ ∀r f. Ring r ∧ INJ f R 𝕌(:β) ⇒ Ring (ring_inj_image r f)
⊢ ∀r f. Ring r ∧ INJ f R 𝕌(:β) ⇒ RingHomo f r (ring_inj_image r f)
⊢ ∀r f. Ring r ∧ INJ f R 𝕌(:β) ⇒ AbelianGroup (ring_inj_image r f).sum
⊢ ∀r f. Ring r ∧ INJ f R 𝕌(:β) ⇒ Group (ring_inj_image r f).sum
⊢ ∀r f. Ring r ∧ INJ f R 𝕌(:β) ⇒ GroupHomo f r.sum (ring_inj_image r f).sum
⊢ ∀r f. Ring r ∧ INJ f R 𝕌(:β) ⇒ Monoid (ring_inj_image r f).sum
⊢ ∀r. Ring r ⇒ |/ #1 = #1
⊢ ∀r f.
EuclideanRing r f ⇒
∀p. p ∈ R ∧ atom p ⇒ ∀q. q ∈ R ⇒ unit (rgcd p q) ∨ p rdivides q
⊢ ∀r r_ f. (r =r= r_) f ⇒ ∀x y. x ∈ R ∧ y ∈ R ⇒ f (x + y) = f x +_ f y
⊢ ∀r r_ f. (r =r= r_) f ⇒ BIJ f R R_
⊢ ∀r r_ f. RingIso f r r_ ∧ FINITE R ⇒ CARD R = CARD R_
⊢ ∀r r_ f. (r =r= r_) f ⇒ char r_ = char r
⊢ ∀r s t f1 f2. RingIso f1 r s ∧ RingIso f2 s t ⇒ RingIso (f2 ∘ f1) r t
⊢ ∀r r_ f1 f2.
Ring r ∧ Ring r_ ∧ (∀x. x ∈ R ⇒ f1 x = f2 x) ⇒
(RingIso f1 r r_ ⇔ RingIso f2 r r_)
⊢ ∀r r_ f. RingIso f r r_ ⇒ ∀x. x ∈ R ⇒ f x ∈ R_
⊢ ∀r r_ f. (r =r= r_) f ⇒ ∀x y. x ∈ R ∧ y ∈ R ⇒ (f x = f y ⇔ x = y)
⊢ ∀r r_ f. (r =r= r_) f ⇒ ∀x. x ∈ R ⇒ (f x = #1_ ⇔ x = #1)
⊢ ∀r r_ f. (r =r= r_) f ⇒ ∀x. x ∈ R ⇒ (f x = #0_ ⇔ x = #0)
⊢ ∀r r_ f. (r =r= r_) f ⇒ ∀x. x ∈ R ⇒ ∀n. f (x ** n) = f x **_ n
⊢ ∀r r_ f. (r =r= r_) f ⇒ f #0 = #0_ ∧ f #1 = #1_
⊢ ∀r r_ f. (r =r= r_) f ⇒ ∀x. unit x ⇒ f ( |/ x) = |/_ (f x)
⊢ ∀r r_ f. (r =r= r_) f ⇒ ∀y. y ∈ R_ ⇒ ∃x. x ∈ R ∧ y = f x
⊢ ∀r r_ f. (r =r= r_) f ⇒ ∀y. y ∈ R_ ⇒ LINV f R y ∈ R ∧ y = f (LINV f R y)
⊢ ∀r r_ f. (r =r= r_) f ⇒ RingIso (LINV f R) r_ r
⊢ ∀r r_ f. (r =r= r_) f ⇒ ∀x y. x ∈ R ∧ y ∈ R ⇒ f (x * y) = f x *_ f y
⊢ ∀r r_ f. (r =r= r_) f ⇒ ∀x. x ∈ R ⇒ f (-x) = $-_ (f x)
⊢ ∀r r_ f. (r =r= r_) f ⇒ ∀x. x ∈ R+ ⇒ f x ∈ R+_
⊢ ∀r r_ f. (r =r= r_) f ⇒ ∀n. f (##n) = ##_ #1_ n
⊢ ∀r r_ f. (r =r= r_) f ⇒ f #1 = #1_
⊢ ∀r r_ f.
Ring r ∧ RingIso f r r_ ⇒
∀x y. x ∈ R ∧ y ∈ R ⇒ f (x + y) = f x +_ f y ∧ f (x * y) = f x *_ f y
⊢ ∀r r_ f. (r =r= r_) f ⇒ subring (ring_homo_image f r r_) r_
⊢ ∀r r_ f. (r =r= r_) f ⇒ ∀x y. x ∈ R ∧ y ∈ R ⇒ f (x − y) = f x -_ f y
⊢ ∀r s r_ f. (r =r= r_) f ∧ s ≤ r ⇒ (s =r= ring_homo_image f s r_) f
⊢ ∀r r_ f. (r =r= r_) f ⇒ RingIso (LINV f R) r_ r
⊢ Ring r ∧ Ring s ∧ RingIso f r s ∧
(∀x. x ∈ s.carrier ⇒ i x ∈ R ∧ f (i x) = x) ∧ (∀x. x ∈ R ⇒ i (f x) = x) ⇒
RingIso i s r
⊢ ∀r s t f1 f2. RingIso f1 r s ∧ RingIso f2 s t ⇒ RingIso (f2 ∘ f1) r t
⊢ ∀r r_ f. (r =r= r_) f ⇒ ∀x. unit x ⇒ unit_ (f x)
⊢ ∀r r_ f. (r =r= r_) f ⇒ f #0 = #0_
⊢ ∀x s. rlist (SNOC x s) ⇔ x ∈ R ∧ rlist s
⊢ ∀r h t. rlist (h::t) ⇔ h ∈ R ∧ rlist t
⊢ ∀r f. rfun f ⇒ ∀n. rlist (GENLIST f n)
⊢ ∀r f. rfun f ⇒ ∀n g. rlist (GENLIST (f ∘ g) n)
⊢ ∀s. rlist (FRONT s) ∧ LAST s ∈ R ⇒ rlist s
⊢ ∀r. Ring r ⇒
∀f. rfun f ⇒ ∀x. x ∈ R ⇒ ∀n. rlist (GENLIST (λj. f j * x ** j) n)
ring_literal_11
⊢ ∀f1 m01 m1 f2 m02 m2.
<|carrier := f1; sum := m01; prod := m1|> =
<|carrier := f2; sum := m02; prod := m2|> ⇔
f1 = f2 ∧ m01 = m02 ∧ m1 = m2
ring_literal_nchotomy
⊢ ∀r. ∃f m0 m. r = <|carrier := f; sum := m0; prod := m|>
⊢ ∀r. Ring r ⇒ AbelianMonoid r.prod
⊢ ∀r. Ring r ⇒
∀z y x.
x ∈ R ∧ y ∈ R ∧ z ∈ R ⇒
x * (y + z) = x * y + x * z ∧ (y + z) * x = y * x + z * x
⊢ ∀r. Ring r ⇒
∀x. x ∈ R ⇒ ∀n. ##n * x + -x = if n = 0 then -x else ##(n − 1) * x
⊢ ∀r. Ring r ⇒
∀x y.
x ∈ R ∧ y ∈ R ⇒
∀n. ##n * x + (-x + y) =
if n = 0 then -x + y else ##(n − 1) * x + y
⊢ ∀r. Ring r ⇒
∀x. x ∈ R ⇒
∀m n.
##m * x + -(##n * x) =
if m < n then -(##(n − m) * x) else ##(m − n) * x
⊢ ∀r. Ring r ⇒
∀x y.
x ∈ R ∧ y ∈ R ⇒
∀m n.
##m * x + (-(##n * x) + y) =
if m < n then -(##(n − m) * x) + y else ##(m − n) * x + y
ring_mult_assoc
⊢ ∀r. Ring r ⇒ ∀x y z. x ∈ R ∧ y ∈ R ∧ z ∈ R ⇒ x * y * z = x * (y * z)
⊢ ∀r. Ring r ⇒ ∀x y z. x ∈ R ∧ y ∈ R ∧ z ∈ R ⇒ x * (y * z) = y * (x * z)
⊢ ∀r. Ring r ⇒ ∀x y. x ∈ R ∧ y ∈ R ⇒ x * y = y * x
⊢ ∀r p q x.
Ring r ∧ p * q rdivides x ∧ p ∈ R ∧ q ∈ R ⇒ p rdivides x ∧ q rdivides x
ring_mult_element
⊢ ∀r. Ring r ⇒ ∀x y. x ∈ R ∧ y ∈ R ⇒ x * y ∈ R
⊢ ∀r. Ring r ⇒ ∀x y. x ∈ R ∧ y ∈ R ⇒ ∀n. (x * y) ** n = x ** n * y ** n
⊢ ∀r. Ring r ⇒ ∀x y z. x ∈ R ∧ y ∈ R ∧ z ∈ R ⇒ (y + z) * x = y * x + z * x
⊢ ∀r. Ring r ⇒ ∀x y. x ∈ R ∧ y ∈ R ⇒ -x * y = -(x * y)
ring_mult_lone
⊢ ∀r. Ring r ⇒ ∀x. x ∈ R ⇒ #1 * x = x
⊢ ∀r. Ring r ⇒ ∀x y z. x ∈ R ∧ y ∈ R ∧ z ∈ R ⇒ x * z − y * z = (x − y) * z
⊢ ∀r. Ring r ⇒ ∀x. x ∈ R ⇒ #0 * x = #0
⊢ ∀r. Ring r ⇒
Monoid r.prod ∧ r.prod.carrier = R ∧
∀x y. x ∈ R ∧ y ∈ R ⇒ x * y = y * x
⊢ ∀r. Ring r ⇒ Monoid r.prod ∧ r.prod.carrier = R
⊢ ∀r. Ring r ⇒ ∀x y. x ∈ R ∧ y ∈ R ⇒ -x * -y = x * y
ring_mult_one_one
⊢ ∀r. Ring r ⇒ #1 * #1 = #1
⊢ ∀r. Ring r ⇒
∀x y p q.
x ∈ R ∧ y ∈ R ∧ p ∈ R ∧ q ∈ R ⇒
x * y − p * q = (x − p) * y + p * (y − q)
⊢ ∀r. Ring r ⇒
∀x y p q.
x ∈ R ∧ y ∈ R ∧ p ∈ R ∧ q ∈ R ⇒
x * y − p * q = (x − p) * (y − q) + (x − p) * q + p * (y − q)
⊢ ∀r. Ring r ⇒ ∀x y z. x ∈ R ∧ y ∈ R ∧ z ∈ R ⇒ x * (y + z) = x * y + x * z
⊢ ∀r. Ring r ⇒ ∀x y. x ∈ R ∧ y ∈ R ⇒ x * -y = -(x * y)
ring_mult_rone
⊢ ∀r. Ring r ⇒ ∀x. x ∈ R ⇒ x * #1 = x
⊢ ∀r. Ring r ⇒ ∀x y z. x ∈ R ∧ y ∈ R ∧ z ∈ R ⇒ x * y − x * z = x * (y − z)
⊢ ∀r. Ring r ⇒ ∀x. x ∈ R ⇒ x * #0 = #0
⊢ ∀r. Ring r ⇒ #0 * #0 = #0
ring_nchotomy
⊢ ∀rr. ∃f m m0. rr = ring f m m0
⊢ ∀r. Ring r ⇒ ∀x y. x ∈ R ∧ y ∈ R ⇒ -(x + y) = -x + -y
ring_neg_add_comm
⊢ ∀r. Ring r ⇒ ∀x y. x ∈ R ∧ y ∈ R ⇒ -(x + y) = -y + -x
⊢ ∀r. Ring r ⇒ ∀x. x ∈ R ⇒ -x + -x = -(##2 * x)
⊢ ∀r. Ring r ⇒ ∀x y. x ∈ R ∧ y ∈ R ⇒ -x + (-x + y) = -(##2 * x) + y
⊢ ∀r. Ring r ⇒ ∀x. x ∈ R ⇒ ∀n. -x + -(##n * x) = -(##(n + 1) * x)
⊢ ∀r. Ring r ⇒
∀x y.
x ∈ R ∧ y ∈ R ⇒ ∀n. -x + (-(##n * x) + y) = -(##(n + 1) * x) + y
⊢ ∀r. Ring r ∧ char r = 2 ⇒ ∀x. x ∈ R ⇒ -x = x
ring_neg_element
⊢ ∀r. Ring r ⇒ ∀x. x ∈ R ⇒ -x ∈ R
ring_neg_eq
⊢ ∀r. Ring r ⇒ ∀x y. x ∈ R ∧ y ∈ R ⇒ (-x = -y ⇔ x = y)
ring_neg_eq_swap
⊢ ∀r. Ring r ⇒ ∀x y. x ∈ R ∧ y ∈ R ⇒ (-x = y ⇔ x = -y)
ring_neg_eq_zero
⊢ ∀r. Ring r ⇒ ∀x. x ∈ R ⇒ (-x = #0 ⇔ x = #0)
⊢ ∀r. Ring r ⇒
∀x. x ∈ R ⇒ ∀n. -x ** n = if EVEN n then x ** n else -(x ** n)
⊢ ∀r. Ring r ⇒ ∀x y. x ∈ R ∧ y ∈ R ⇒ -(x * y) = -x * y ∧ -(x * y) = x * -y
⊢ ∀r. Ring r ⇒ ∀x. x ∈ R ⇒ ∀m n. -(##m * x) + -(##n * x) = -(##(m + n) * x)
⊢ ∀r. Ring r ⇒
∀x y.
x ∈ R ∧ y ∈ R ⇒
∀m n. -(##m * x) + (-(##n * x) + y) = -(##(m + n) * x) + y
ring_neg_neg
⊢ ∀r. Ring r ⇒ ∀x. x ∈ R ⇒ --x = x
⊢ ∀r. Ring r ⇒ ∀x. x ∈ R+ ⇒ -x ∈ R+
⊢ ∀r. Ring r ∧ #1 ≠ #0 ⇒ (-#1 = #1 ⇔ char r = 2)
⊢ ∀r. Ring r ⇒ ∀x. x ∈ R ⇒ -x ** 2 = x ** 2
⊢ ∀r. Ring r ⇒ ∀x y. x ∈ R ∧ y ∈ R ⇒ -(x − y) = y − x
ring_neg_zero
⊢ ∀r. Ring r ⇒ -#0 = #0
⊢ ∀r x. x ∈ R+ ⇔ x ∈ R ∧ x ≠ #0
ring_num_1
⊢ ∀r. Ring r ⇒ ##1 = #1
⊢ ∀r. Ring r ⇒ ##2 = #1 + #1
ring_num_SUC
⊢ ∀r. Ring r ⇒ ∀n. ##(SUC n) = #1 + ##n
ring_num_add
⊢ ∀r. Ring r ⇒ ∀n k. ##(n + k) = ##n + ##k
⊢ ∀r. Ring r ⇒ ∀x. x ∈ R ⇒ ∀m n. ##m + (##n + x) = ##(m + n) + x
⊢ ∀r. Ring r ⇒ ∀x. x ∈ R ⇒ ∀m n. ##(m + n) * x = ##m * x + ##n * x
⊢ ∀r. Ring r ⇒
∀x y.
x ∈ R ∧ y ∈ R ⇒ ∀m n. ##(m + n) * x + y = ##m * x + (##n * x + y)
⊢ ∀r. Ring r ⇒ #1 = #0 ⇒ ∀c. ##c = #0
⊢ ∀r. Ring r ∧ #1 ≠ #0 ⇒ ∀c. coprime c (char r) ⇒ ##c ≠ #0
ring_num_element
⊢ ∀r. Ring r ⇒ ∀n. ##n ∈ R
⊢ ∀r. Ring r ⇒ ∀n m. n < char r ∧ m < char r ⇒ (##n = ##m ⇔ n = m)
⊢ ∀r. Ring r ⇒ ∀m n. ##m ** n = ##(m ** n)
⊢ ∀r. Ring r ∧ 0 < char r ⇒ ∀n. ##n = ##(n MOD char r)
⊢ ∀r. Ring r ⇒ ∀m n. ##m * ##n = ##(m * n)
⊢ ∀r. Ring r ⇒ ∀m n x. x ∈ R ⇒ ##m * (##n * x) = ##(m * n) * x
⊢ ∀r. Ring r ⇒ ∀x. x ∈ R ⇒ ∀n. ##n * x ∈ R
⊢ ∀r. Ring r ⇒ ∀k m n. ##k * ##m ** n = ##(k * m ** n)
⊢ ∀r. Ring r ⇒ ∀x. x ∈ R ⇒ ∀n. -(##n * x) = ##n * -x
⊢ ∀r. Ring r ⇒ ∀x y. x ∈ R ∧ y ∈ R ⇒ ∀n. ##n * (x + y) = ##n * x + ##n * y
⊢ ∀r. Ring r ⇒
∀x. x ∈ R ⇒
#0 * x = #0 ∧ #1 * x = x ∧ ##2 * x = x + x ∧
##3 * x = ##2 * x + x
⊢ ∀r. Ring r ⇒ ∀x. x ∈ R ⇒ ∀n. ##(SUC n) * x = ##n * x + x
⊢ ∀r. Ring r ∧ 0 < char r ⇒ ∀z. ∃y x. y = ##x ∧ y + ##z = #0
⊢ ∀r. Ring r ⇒ ∀n m. m < n ⇒ ##(n − m) = ##n − ##m
⊢ ∀r. Ring r ⇒ ∀n. ##(SUC n) = ##n + #1
ring_one_element
⊢ ∀r. Ring r ⇒ #1 ∈ R
⊢ ∀r. Ring r ⇒ (#1 = #0 ⇔ R = {#0})
ring_one_exp
⊢ ∀r. Ring r ⇒ ∀n. #1 ** n = #1
⊢ ∀r. Ring r ⇒ ∀y. y ∈ R ⇒ ((∀x. x ∈ R ⇒ y * x = x ∨ x * y = x) ⇔ y = #1)
⊢ ∀r. Ring r ⇒
∀p. p ∈ R ⇒
(rprime p ∧ p ∉ R* ⇔
∀b. FINITE_BAG b ∧ SET_OF_BAG b ⊆ R ∧ p rdivides GBAG r.prod b ⇒
∃x. x ⋲ b ∧ p rdivides x)
⊢ ∀r r_ f. (r =r= r_) f ⇒ ∀p. p ∈ R ∧ rprime p ⇒ ring_prime r_ (f p)
⊢ ∀r. Ring r ⇒
∀b. FINITE_BAG b ⇒
SET_OF_BAG b ⊆ R ∧ GBAG r.prod b rdivides x ⇒
∀y. y ⋲ b ⇒ y rdivides x
⊢ ∀r. Ring r ⇒ ∀x. x ∈ R ⇒ ∀n. x + ##n * x = ##(n + 1) * x
⊢ ∀r. Ring r ⇒
∀x y. x ∈ R ∧ y ∈ R ⇒ ∀n. x + (##n * x + y) = ##(n + 1) * x + y
⊢ ∀r. Ring r ⇒
∀x. x ∈ R ⇒
∀n. x + -(##n * x) = if n = 0 then x else -(##(n − 1) * x)
⊢ ∀r. Ring r ⇒
∀x y.
x ∈ R ∧ y ∈ R ⇒
∀n. x + (-(##n * x) + y) =
if n = 0 then x + y else -(##(n − 1) * x) + y
⊢ ∀r. Ring r ⇒ ∀x. x ∈ R ⇒ x + x = ##2 * x
⊢ ∀r. Ring r ⇒ ∀x y. x ∈ R ∧ y ∈ R ⇒ x + (x + y) = ##2 * x + y
⊢ ∀r. Ring r ⇒ ∀x. x ∈ R ⇒ ∀n. x * x ** n = x ** (n + 1)
⊢ ∀r. Ring r ⇒
∀x y. x ∈ R ∧ y ∈ R ⇒ ∀n. x * (x ** n * y) = x ** (n + 1) * y
⊢ ∀r. Ring r ⇒ ∀x. x ∈ R ⇒ x * x = x ** 2
⊢ ∀r. Ring r ⇒ ∀x y. x ∈ R ∧ y ∈ R ⇒ x * (x * y) = x ** 2 * y
⊢ ∀r. Ring r ⇒ ∀x y. x ∈ R ∧ y ∈ R ⇒ x − y + y = x
⊢ ∀r. Ring r ⇒ ∀x y. x ∈ R ∧ y ∈ R ⇒ x − y ∈ R
⊢ ∀r. Ring r ⇒ ∀x y. x ∈ R ⇒ x − x = #0
⊢ ∀r. Ring r ⇒ ∀x y z. x ∈ R ∧ y ∈ R ∧ z ∈ R ⇒ (x − y = z ⇔ x = y + z)
⊢ ∀r. Ring r ⇒ ∀x y. x ∈ R ∧ y ∈ R ⇒ (x − y = #0 ⇔ x = y)
⊢ ∀r. Ring r ⇒ ∀x y z. x ∈ R ∧ y ∈ R ∧ z ∈ R ⇒ (x − y = x − z ⇔ y = z)
⊢ ∀r. Ring r ⇒ ∀x y z. x ∈ R ∧ y ∈ R ∧ z ∈ R ⇒ x + z − (y + z) = x − y
⊢ ∀r. Ring r ⇒ ∀x y z. x ∈ R ∧ y ∈ R ∧ z ∈ R ⇒ (y − x = z − x ⇔ y = z)
⊢ ∀r. Ring r ⇒ ∀x. x ∈ R ⇒ x − #0 = x
⊢ ∀r. Ring r ⇒ ∀k s. k ∈ R ∧ rlist s ⇒ rsum (SNOC k s) = rsum s + k
⊢ ∀r. Ring r ⇒ ∀s t. rlist s ∧ rlist t ⇒ rsum (s ⧺ t) = rsum s + rsum t
⊢ ∀r h t. rsum (h::t) = h + rsum t
⊢ ∀r f n. rsum (GENLIST f (SUC n)) = f 0 + rsum (GENLIST (f ∘ SUC) n)
⊢ ∀r. Ring r ⇒
∀f n.
rfun f ∧ 0 < n ⇒
rsum (GENLIST f (SUC n)) =
f 0 + rsum (GENLIST (f ∘ SUC) (PRE n)) + f n
⊢ ∀r. Ring r ⇒
∀f n. rfun f ⇒ rsum (GENLIST f (SUC n)) = rsum (GENLIST f n) + f n
⊢ ∀r. Ring r ⇒ ∀s. rlist s ⇒ rsum s ∈ R
⊢ ∀r. Ring r ∧ prime (char r) ⇒
∀f. rfun f ⇒
∀x. x ∈ R ⇒
∀n k.
rsum (GENLIST (λj. f j * x ** j) n) ** char r ** k =
rsum (GENLIST (λj. (f j * x ** j) ** char r ** k) n)
⊢ ∀r. Ring r ∧ prime (char r) ⇒
∀f. rfun f ⇒
∀x. x ∈ R ⇒
∀n. rsum (GENLIST (λj. f j * x ** j) n) ** char r =
rsum (GENLIST (λj. (f j * x ** j) ** char r) n)
⊢ ∀r. Ring r ⇒
∀f. rfun f ⇒
∀n. (∀k. 0 < k ∧ k < n ⇒ f k = #0) ⇒
rsum (MAP f (GENLIST SUC (PRE n))) = #0
⊢ ∀r. Ring r ⇒
∀a b.
rfun a ∧ rfun b ⇒
∀n. rsum (GENLIST a n) + rsum (GENLIST b n) =
rsum (GENLIST (λk. a k + b k) n)
⊢ ∀r. Ring r ⇒
∀a b.
rfun a ∧ rfun b ⇒
∀n. rsum (GENLIST a n ⧺ GENLIST b n) =
rsum (GENLIST (λk. a k + b k) n)
⊢ ∀r. Ring r ⇒ ∀x. x ∈ R ⇒ ∀n. rsum (GENLIST (K x) n) = ##n * x
⊢ ∀r. Ring r ⇒
∀f. rfun f ⇒
∀n m.
rsum (GENLIST f (n + m)) =
rsum (GENLIST f m) + rsum (GENLIST (λk. f (k + m)) n)
⊢ ∀r. Ring r ⇒
∀k s. k ∈ R ∧ rlist s ⇒ k * rsum s = rsum (MAP (λx. k * x) s)
⊢ ∀r. Ring r ⇒
∀m n s.
m ∈ R ∧ n ∈ R ∧ rlist s ⇒
(m + n) * rsum s =
rsum (MAP (λx. m * x) s) + rsum (MAP (λx. n * x) s)
⊢ ∀r. Ring r ⇒ ∀x. x ∈ R ⇒ rsum [x] = x
ring_sum_zero
⊢ ∀r. Ring r ⇒ ∀n. r.sum.exp #0 n = #0
⊢ ∀r. Ring r ⇒ ∀x. unit x ⇒ x ∈ R
ring_unit_has_inv
⊢ ∀r. Ring r ⇒ ∀x. unit x ⇒ unit ( |/ x)
⊢ ∀r. Ring r ⇒ ∀x. unit x ⇒ |/ x ∈ R
⊢ ∀r. Ring r ⇒ ∀u. unit u ⇒ u = |/ ( |/ u)
⊢ ∀r. Ring r ∧ #1 ≠ #0 ⇒ ∀x. unit x ⇒ |/ x ≠ #0
ring_unit_linv
⊢ ∀r. Ring r ⇒ ∀x. unit x ⇒ |/ x * x = #1
⊢ ∀r. Ring r ⇒ ∀u v. unit u ∧ v ∈ R ∧ |/ u * v = #1 ⇒ u = v
⊢ ∀r. Ring r ⇒ ∀u v. u ∈ R ∧ unit v ∧ u * v = #1 ⇒ u = |/ v
⊢ ∀r. Ring r ⇒ ∀x y. x ∈ R ∧ y ∈ R ⇒ (unit (x * y) ⇔ unit x ∧ unit y)
⊢ ∀r. Ring r ⇒ ∀u v. unit u ∧ unit v ⇒ unit (u * v)
⊢ ∀r. Ring r ⇒ ∀x y. unit x ∧ y ∈ R ⇒ (x * y = #0 ⇔ y = #0)
⊢ ∀r. Ring r ⇒ ∀x. unit x ⇒ unit (-x)
⊢ ∀r. Ring r ∧ #1 ≠ #0 ⇒ ∀x. unit x ⇒ x ≠ #0
⊢ ∀r. Ring r ⇒ ∀u. unit u ⇔ u ∈ R ∧ ∃v. v ∈ R ∧ u * v = #1
ring_unit_rinv
⊢ ∀r. Ring r ⇒ ∀x. unit x ⇒ x * |/ x = #1
⊢ ∀r. Ring r ⇒ ∀u v. u ∈ R ∧ unit v ∧ u * |/ v = #1 ⇒ u = v
⊢ ∀r. Ring r ⇒ ∀u v. unit u ∧ v ∈ R ∧ u * v = #1 ⇒ v = |/ u
⊢ ∀r. Ring r ⇒ (unit #0 ⇔ #1 = #0)
⊢ ∀r. Ring r ⇒ AbelianGroup r*
⊢ ∀r. Ring r ⇒ ∀x. unit x ⇒ x ∈ R
⊢ ∀r. Ring r ⇒ (unit #0 ⇔ #1 = #0)
⊢ ∀r. Ring r ⇒ r*.op = $* ∧ r*.id = #1
ring_updates_eq_literal
⊢ ∀r f m0 m.
r with <|carrier := f; sum := m0; prod := m|> =
<|carrier := f; sum := m0; prod := m|>
⊢ ∀r. Ring r ⇒ ∀x. x ∈ R ⇒ (#0 rdivides x ⇔ x = #0)
ring_zero_element
⊢ ∀r. Ring r ⇒ #0 ∈ R
⊢ ∀r. Ring r ⇒ ∀n. #0 ** n = if n = 0 then #1 else #0
ring_zero_fix
⊢ ∀r. Ring r ⇒ ∀x. x ∈ R ⇒ (x + x = x ⇔ x = #0)
⊢ ∀r. Ring r ⇒ ∀x. x ∈ R ⇒ #0 − x = -x
ring_zero_unique
⊢ ∀r. Ring r ⇒
∀x y. x ∈ R ∧ y ∈ R ⇒ (y + x = x ⇔ y = #0) ∧ (x + y = x ⇔ y = #0)
⊢ ∀r s. subring s r ∧ subring r s ⇒ RingIso I s r
⊢ ∀r s. s ≤ r ⇒ ∀x y. x ∈ B ∧ y ∈ B ⇒ s.sum.op x y = x + y
⊢ ∀r s.
s ≤ r ⇔
Ring r ∧ Ring s ∧ subgroup s.sum r.sum ∧ submonoid s.prod r.prod
⊢ ∀r s. subring s r ∧ R ⊆ B ⇒ RingIso I s r
⊢ ∀r s. FiniteRing r ∧ subring s r ⇒ FINITE B
⊢ ∀r s. subring s r ⇒ B ⊆ R
⊢ ∀r s. s ≤ r ⇒ char s = char r
⊢ ∀r s. s ≤ r ⇒ char r divides char s
⊢ ∀r s. subring s r ⇒ ∀x. x ∈ B ⇒ x ∈ R
⊢ ∀r s. s ≤ r ⇒ ∀x. x ∈ B ⇒ x ∈ R
⊢ ∀r s. s ≤ r ⇒ ∀x. x ∈ B ⇒ ∀n. s.prod.exp x n = x ** n
⊢ ∀r s. FiniteRing r ∧ s ≤ r ⇒ FiniteRing s
⊢ ∀r s r_ f. subring s r ∧ RingHomo f r r_ ⇒ RingHomo f s r_
⊢ ∀r s. s ≤ r ⇒ s.sum.id = #0 ∧ s.prod.id = #1
⊢ ∀r s. s ≤ r ⇒ ∀x y. x ∈ B ∧ y ∈ B ⇒ s.prod.op x y = x * y
⊢ ∀r s. s ≤ r ⇒ ∀x. x ∈ B ⇒ s.sum.inv x = -x
⊢ ∀r s. s ≤ r ⇒ ∀n. s.sum.exp s.prod.id n = ##n
⊢ ∀r s. s ≤ r ⇒ s.prod.id = #1
⊢ ∀r s. subring s r ⇒ submonoid s.prod r.prod
⊢ ∀r s.
Ring s ∧ subring s r ⇒
∀x y. x ∈ B ∧ y ∈ B ⇒ s.sum.op x y = x + y ∧ s.prod.op x y = x * y
⊢ ∀r s r_ f. subring s r ∧ RingIso f r r_ ⇒ RingHomo f s r_
⊢ ∀r s r_ f. s ≤ r ∧ (r =r= r_) f ⇒ ring_homo_image f s r_ ≤ r_
⊢ ∀r s. s ≤ r ⇒ ∀x y. x ∈ B ∧ y ∈ B ⇒ ring_sub s x y = x − y
⊢ ∀r s. subring s r ⇒ subgroup s.sum r.sum
⊢ ∀r s t. subring r s ∧ subring s t ⇒ subring r t
⊢ ∀r s. s ≤ r ⇒ ∀x. Unit s x ⇒ unit x
⊢ ∀r s. s ≤ r ⇒ ∀x. Unit s x ⇒ Inv s x = |/ x
⊢ ∀r s. s ≤ r ⇒ ∀x. Unit s x ⇒ Inv s x ∈ B
⊢ ∀r s. s ≤ r ∧ #1 ≠ #0 ⇒ ∀x. Unit s x ⇒ Inv s x ≠ #0
⊢ ∀r s. s ≤ r ∧ #1 ≠ #0 ⇒ ∀x. Unit s x ⇒ x ≠ #0
⊢ ∀r s. s ≤ r ⇒ s.sum.id = #0
⊢ symdiff_set.carrier = 𝕌(:α -> bool) ∧
(∀x y. symdiff_set.op x y = x ∪ y DIFF x ∩ y) ∧ symdiff_set.id = ∅
⊢ char symdiff_set_inter = 2
⊢ symdiff 𝕌(:α) 𝕌(:α) = ∅
⊢ ∀z. char (trivial_ring z) = 1
⊢ ∀e0 e1. e0 ≠ e1 ⇒ FiniteIntegralDomain (trivial_integal_domain e0 e1)
⊢ ∀z. FiniteRing (trivial_ring z)
⊢ ∀z. Ring (trivial_ring z)
⊢ ∀r. Ring r ⇒ ∀x. x ∈ R ⇒ x =~ x
⊢ ∀r. Ring r ⇒ ∀x y. x ∈ R ∧ y ∈ R ∧ x =~ y ⇒ y =~ x
⊢ ∀r. Ring r ⇒ ∀x y z. x ∈ R ∧ y ∈ R ∧ z ∈ R ∧ x =~ y ∧ y =~ z ⇒ x =~ z
⊢ ∀r. Ring r ⇒ <#0>.carrier = {#0}