Lemmas about division (semi)rings and (semi)fields #
theorem
same_add_div
{K : Type u_1}
[DivisionSemiring K]
{a b : K}
(h : b β 0)
:
(b + a) / b = 1 + a / b
theorem
div_add_same
{K : Type u_1}
[DivisionSemiring K]
{a b : K}
(h : b β 0)
:
(a + b) / b = a / b + 1
theorem
one_add_div
{K : Type u_1}
[DivisionSemiring K]
{a b : K}
(h : b β 0)
:
1 + a / b = (b + a) / b
theorem
div_add_one
{K : Type u_1}
[DivisionSemiring K]
{a b : K}
(h : b β 0)
:
a / b + 1 = (a + b) / b
See inv_add_inv for the more convenient version when K is commutative.
theorem
one_div_mul_add_mul_one_div_eq_one_div_add_one_div
{K : Type u_1}
[DivisionSemiring K]
{a b : K}
(ha : a β 0)
(hb : b β 0)
:
1 / a * (a + b) * (1 / b) = 1 / a + 1 / b
theorem
add_div_eq_mul_add_div
{K : Type u_1}
[DivisionSemiring K]
{c : K}
(a b : K)
(hc : c β 0)
:
a + b / c = (a * c + b) / c
theorem
add_div'
{K : Type u_1}
[DivisionSemiring K]
(a b c : K)
(hc : c β 0)
:
b + a / c = (b * c + a) / c
theorem
div_add'
{K : Type u_1}
[DivisionSemiring K]
(a b c : K)
(hc : c β 0)
:
a / c + b = (a + b * c) / c
theorem
Commute.div_add_div
{K : Type u_1}
[DivisionSemiring K]
{a b c d : K}
(hbc : Commute b c)
(hbd : Commute b d)
(hb : b β 0)
(hd : d β 0)
:
a / b + c / d = (a * d + b * c) / (b * d)
theorem
Commute.one_div_add_one_div
{K : Type u_1}
[DivisionSemiring K]
{a b : K}
(hab : Commute a b)
(ha : a β 0)
(hb : b β 0)
:
1 / a + 1 / b = (a + b) / (a * b)
theorem
Commute.inv_add_inv
{K : Type u_1}
[DivisionSemiring K]
{a b : K}
(hab : Commute a b)
(ha : a β 0)
(hb : b β 0)
:
@[simp]
@[simp]
@[simp]
@[simp]
theorem
same_sub_div
{K : Type u_1}
[DivisionRing K]
{a b : K}
(h : b β 0)
:
(b - a) / b = 1 - a / b
theorem
div_sub_same
{K : Type u_1}
[DivisionRing K]
{a b : K}
(h : b β 0)
:
(a - b) / b = a / b - 1
See inv_sub_inv for the more convenient version when K is commutative.
theorem
one_div_mul_sub_mul_one_div_eq_one_div_add_one_div
{K : Type u_1}
[DivisionRing K]
{a b : K}
(ha : a β 0)
(hb : b β 0)
:
1 / a * (b - a) * (1 / b) = 1 / a - 1 / b
theorem
inv_eq_selfβ
{K : Type u_1}
[DivisionRing K]
{a : K}
:
aβ»ΒΉ = a β a = -1 β¨ a = 0 β¨ a = 1
theorem
self_eq_invβ
{K : Type u_1}
[DivisionRing K]
{a : K}
:
a = aβ»ΒΉ β a = -1 β¨ a = 0 β¨ a = 1
@[instance 100]
theorem
Commute.div_sub_div
{K : Type u_1}
[DivisionRing K]
{a b c d : K}
(hbc : Commute b c)
(hbd : Commute b d)
(hb : b β 0)
(hd : d β 0)
:
a / b - c / d = (a * d - b * c) / (b * d)
theorem
Commute.inv_sub_inv
{K : Type u_1}
[DivisionRing K]
{a b : K}
(hab : Commute a b)
(ha : a β 0)
(hb : b β 0)
:
theorem
div_add_div
{K : Type u_1}
[Semifield K]
{b d : K}
(a c : K)
(hb : b β 0)
(hd : d β 0)
:
a / b + c / d = (a * d + b * c) / (b * d)
theorem
one_div_add_one_div
{K : Type u_1}
[Semifield K]
{a b : K}
(ha : a β 0)
(hb : b β 0)
:
1 / a + 1 / b = (a + b) / (a * b)
@[implicit_reducible, instance 100]
theorem
div_sub_div
{K : Type u_1}
[Field K]
(a : K)
{b : K}
(c : K)
{d : K}
(hb : b β 0)
(hd : d β 0)
:
a / b - c / d = (a * d - b * c) / (b * d)
@[reducible, inline]
noncomputable abbrev
DivisionRing.ofIsUnitOrEqZero
{R : Type u_3}
[Nontrivial R]
[Ring R]
(h : β (a : R), IsUnit a β¨ a = 0)
:
Constructs a DivisionRing structure on a Ring consisting only of units and 0.
Instances For
@[reducible, inline]
noncomputable abbrev
Field.ofIsUnitOrEqZero
{R : Type u_3}
[Nontrivial R]
[CommRing R]
(h : β (a : R), IsUnit a β¨ a = 0)
:
Field R
Constructs a Field structure on a CommRing consisting only of units and 0.
Instances For
@[reducible, inline]
abbrev
Function.Injective.divisionSemiring
{K : Type u_1}
{L : Type u_2}
[Zero K]
[Add K]
[One K]
[Mul K]
[Inv K]
[Div K]
[SMul β K]
[SMul ββ₯0 K]
[Pow K β]
[Pow K β€]
[NatCast K]
[NNRatCast K]
(f : K β L)
(hf : Injective f)
[DivisionSemiring L]
(zero : f 0 = 0)
(one : f 1 = 1)
(add : β (x y : K), f (x + y) = f x + f y)
(mul : β (x y : K), f (x * y) = f x * f y)
(inv : β (x : K), f xβ»ΒΉ = (f x)β»ΒΉ)
(div : β (x y : K), f (x / y) = f x / f y)
(nsmul : β (n : β) (x : K), f (n β’ x) = n β’ f x)
(nnqsmul : β (q : ββ₯0) (x : K), f (q β’ x) = q β’ f x)
(npow : β (x : K) (n : β), f (x ^ n) = f x ^ n)
(zpow : β (x : K) (n : β€), f (x ^ n) = f x ^ n)
(natCast : β (n : β), f βn = βn)
(nnratCast : β (q : ββ₯0), f βq = βq)
:
Pullback a DivisionSemiring along an injective function.
Instances For
@[reducible, inline]
abbrev
Function.Injective.divisionRing
{K : Type u_1}
{L : Type u_2}
[Zero K]
[Add K]
[Neg K]
[Sub K]
[One K]
[Mul K]
[Inv K]
[Div K]
[SMul β K]
[SMul β€ K]
[SMul ββ₯0 K]
[SMul β K]
[Pow K β]
[Pow K β€]
[NatCast K]
[IntCast K]
[NNRatCast K]
[RatCast K]
(f : K β L)
(hf : Injective f)
[DivisionRing L]
(zero : f 0 = 0)
(one : f 1 = 1)
(add : β (x y : K), f (x + y) = f x + f y)
(mul : β (x y : K), f (x * y) = f x * f y)
(neg : β (x : K), f (-x) = -f x)
(sub : β (x y : K), f (x - y) = f x - f y)
(inv : β (x : K), f xβ»ΒΉ = (f x)β»ΒΉ)
(div : β (x y : K), f (x / y) = f x / f y)
(nsmul : β (n : β) (x : K), f (n β’ x) = n β’ f x)
(zsmul : β (n : β€) (x : K), f (n β’ x) = n β’ f x)
(nnqsmul : β (q : ββ₯0) (x : K), f (q β’ x) = q β’ f x)
(qsmul : β (q : β) (x : K), f (q β’ x) = q β’ f x)
(npow : β (x : K) (n : β), f (x ^ n) = f x ^ n)
(zpow : β (x : K) (n : β€), f (x ^ n) = f x ^ n)
(natCast : β (n : β), f βn = βn)
(intCast : β (n : β€), f βn = βn)
(nnratCast : β (q : ββ₯0), f βq = βq)
(ratCast : β (q : β), f βq = βq)
:
Pullback a DivisionSemiring along an injective function.
Instances For
@[reducible, inline]
abbrev
Function.Injective.semifield
{K : Type u_1}
{L : Type u_2}
[Zero K]
[Add K]
[One K]
[Mul K]
[Inv K]
[Div K]
[SMul β K]
[SMul ββ₯0 K]
[Pow K β]
[Pow K β€]
[NatCast K]
[NNRatCast K]
(f : K β L)
(hf : Injective f)
[Semifield L]
(zero : f 0 = 0)
(one : f 1 = 1)
(add : β (x y : K), f (x + y) = f x + f y)
(mul : β (x y : K), f (x * y) = f x * f y)
(inv : β (x : K), f xβ»ΒΉ = (f x)β»ΒΉ)
(div : β (x y : K), f (x / y) = f x / f y)
(nsmul : β (n : β) (x : K), f (n β’ x) = n β’ f x)
(nnqsmul : β (q : ββ₯0) (x : K), f (q β’ x) = q β’ f x)
(npow : β (x : K) (n : β), f (x ^ n) = f x ^ n)
(zpow : β (x : K) (n : β€), f (x ^ n) = f x ^ n)
(natCast : β (n : β), f βn = βn)
(nnratCast : β (q : ββ₯0), f βq = βq)
:
Pullback a Field along an injective function.
Instances For
@[reducible, inline]
abbrev
Function.Injective.field
{K : Type u_1}
{L : Type u_2}
[Zero K]
[Add K]
[Neg K]
[Sub K]
[One K]
[Mul K]
[Inv K]
[Div K]
[SMul β K]
[SMul β€ K]
[SMul ββ₯0 K]
[SMul β K]
[Pow K β]
[Pow K β€]
[NatCast K]
[IntCast K]
[NNRatCast K]
[RatCast K]
(f : K β L)
(hf : Injective f)
[Field L]
(zero : f 0 = 0)
(one : f 1 = 1)
(add : β (x y : K), f (x + y) = f x + f y)
(mul : β (x y : K), f (x * y) = f x * f y)
(neg : β (x : K), f (-x) = -f x)
(sub : β (x y : K), f (x - y) = f x - f y)
(inv : β (x : K), f xβ»ΒΉ = (f x)β»ΒΉ)
(div : β (x y : K), f (x / y) = f x / f y)
(nsmul : β (n : β) (x : K), f (n β’ x) = n β’ f x)
(zsmul : β (n : β€) (x : K), f (n β’ x) = n β’ f x)
(nnqsmul : β (q : ββ₯0) (x : K), f (q β’ x) = q β’ f x)
(qsmul : β (q : β) (x : K), f (q β’ x) = q β’ f x)
(npow : β (x : K) (n : β), f (x ^ n) = f x ^ n)
(zpow : β (x : K) (n : β€), f (x ^ n) = f x ^ n)
(natCast : β (n : β), f βn = βn)
(intCast : β (n : β€), f βn = βn)
(nnratCast : β (q : ββ₯0), f βq = βq)
(ratCast : β (q : β), f βq = βq)
:
Field K
Pullback a Field along an injective function.
Instances For
Order dual #
@[implicit_reducible]
@[implicit_reducible]
@[implicit_reducible]
@[implicit_reducible]
@[implicit_reducible]
@[implicit_reducible]
@[simp]
@[simp]
Lexicographic order #
@[implicit_reducible]
@[implicit_reducible]
@[implicit_reducible]
@[implicit_reducible]
@[implicit_reducible]
@[simp]
@[simp]