Documentation Verification Report

SumTwoSquares

📁 Source: Mathlib/NumberTheory/SumTwoSquares.lean

Statistics

MetricCount
DefinitionsinstDecidableExistsNatEqHAddHPowOfNat_mathlib
1
Theoremsmod_four_ne_three_of_dvd_isSquare_neg_one, sq_add_sq, eq_sq_add_sq_iff, eq_sq_add_sq_iff_eq_sq_mul, eq_sq_add_sq_of_isSquare_mod_neg_one, mod_four_ne_three_of_mem_primeFactors_of_isSquare_neg_one, sq_add_sq_mul, isSquare_neg_one_iff, isSquare_neg_one_iff', isSquare_neg_one_iff_forall_mem_primeFactors_mod_four_ne_three, isSquare_neg_one_mul, isSquare_neg_one_of_dvd, isSquare_neg_one_of_eq_sq_add_sq_of_coprime, isSquare_neg_one_of_eq_sq_add_sq_of_isCoprime, sq_add_sq_mul
15
Total16

Nat

Theorems

NameKindAssumesProvesValidatesDepends On
eq_sq_add_sq_iff 📖mathematicalMonoid.toNatPow
instMonoid
Even
padicValNat
Even.zero
padicValNat.zero
eq_sq_add_sq_iff_eq_sq_mul
prime_of_mem_primeFactors
sq_mul_squarefree_of_pos
ZMod.isSquare_neg_one_iff_forall_mem_primeFactors_mod_four_ne_three
primeFactors_mono
Dvd.intro_left
eq_sq_add_sq_iff_eq_sq_mul 📖mathematicalMonoid.toNatPow
instMonoid
IsSquare
ZMod
Distrib.toMul
NonUnitalNonAssocSemiring.toDistrib
NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring
NonUnitalNonAssocCommRing.toNonUnitalNonAssocRing
NonUnitalCommRing.toNonUnitalNonAssocCommRing
CommRing.toNonUnitalCommRing
ZMod.commRing
NegZeroClass.toNeg
SubNegZeroMonoid.toNegZeroClass
SubtractionMonoid.toSubNegZeroMonoid
SubtractionCommMonoid.toSubtractionMonoid
AddCommGroup.toDivisionAddCommMonoid
Ring.toAddCommGroup
CommRing.toRing
AddMonoidWithOne.toOne
AddGroupWithOne.toAddMonoidWithOne
Ring.toAddGroupWithOne
zero_pow
two_ne_zero
add_zero
MulZeroClass.zero_mul
neg_eq_zero
Mathlib.Tactic.Ring.of_eq
Mathlib.Tactic.Ring.add_congr
Mathlib.Tactic.Ring.pow_congr
Mathlib.Tactic.Ring.mul_congr
Mathlib.Tactic.Ring.atom_pf
Mathlib.Tactic.Ring.add_mul
Mathlib.Tactic.Ring.mul_add
Mathlib.Tactic.Ring.mul_pf_left
Mathlib.Tactic.Ring.mul_pf_right
Mathlib.Tactic.Ring.one_mul
Mathlib.Tactic.Ring.mul_zero
Mathlib.Tactic.Ring.add_pf_add_zero
Mathlib.Tactic.Ring.zero_mul
Mathlib.Tactic.Ring.cast_pos
Mathlib.Meta.NormNum.isNat_ofNat
Mathlib.Tactic.Ring.pow_add
Mathlib.Tactic.Ring.single_pow
Mathlib.Tactic.Ring.mul_pow
Mathlib.Tactic.Ring.one_pow
Mathlib.Tactic.Ring.pow_zero
Mathlib.Tactic.Ring.add_pf_add_lt
Mathlib.Tactic.Ring.add_pf_zero_add
ZMod.isSquare_neg_one_of_eq_sq_add_sq_of_coprime
eq_sq_add_sq_of_isSquare_mod_neg_one
eq_sq_add_sq_of_isSquare_mod_neg_one 📖mathematicalIsSquare
ZMod
Distrib.toMul
NonUnitalNonAssocSemiring.toDistrib
NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring
NonUnitalNonAssocCommRing.toNonUnitalNonAssocRing
NonUnitalCommRing.toNonUnitalNonAssocCommRing
CommRing.toNonUnitalCommRing
ZMod.commRing
NegZeroClass.toNeg
SubNegZeroMonoid.toNegZeroClass
SubtractionMonoid.toSubNegZeroMonoid
SubtractionCommMonoid.toSubtractionMonoid
AddCommGroup.toDivisionAddCommMonoid
Ring.toAddCommGroup
CommRing.toRing
AddMonoidWithOne.toOne
AddGroupWithOne.toAddMonoidWithOne
Ring.toAddGroupWithOne
Monoid.toNatPow
instMonoid
induction_on_primes
ZMod.isSquare_neg_one_of_dvd
Prime.sq_add_sq
ZMod.exists_sq_eq_neg_one_iff
mul_comm
sq_add_sq_mul
mod_four_ne_three_of_mem_primeFactors_of_isSquare_neg_one 📖Finset
Finset.instMembership
primeFactors
IsSquare
ZMod
Distrib.toMul
NonUnitalNonAssocSemiring.toDistrib
NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring
NonUnitalNonAssocCommRing.toNonUnitalNonAssocRing
NonUnitalCommRing.toNonUnitalNonAssocCommRing
CommRing.toNonUnitalCommRing
ZMod.commRing
NegZeroClass.toNeg
SubNegZeroMonoid.toNegZeroClass
SubtractionMonoid.toSubNegZeroMonoid
SubtractionCommMonoid.toSubtractionMonoid
AddCommGroup.toDivisionAddCommMonoid
Ring.toAddCommGroup
CommRing.toRing
AddMonoidWithOne.toOne
AddGroupWithOne.toAddMonoidWithOne
Ring.toAddGroupWithOne
ZMod.isSquare_neg_one_of_dvd
dvd_of_mem_primeFactors
prime_of_mem_primeFactors
ZMod.mod_four_ne_three_of_sq_eq_neg_sq'
one_ne_zero
NeZero.one
ZMod.nontrivial
Prime.one_lt'
Mathlib.Tactic.Ring.of_eq
Mathlib.Tactic.Ring.neg_congr
Mathlib.Tactic.Ring.cast_pos
Mathlib.Meta.NormNum.isNat_ofNat
cast_one
Mathlib.Tactic.Ring.neg_add
Mathlib.Tactic.Ring.neg_one_mul
Mathlib.Meta.NormNum.IsInt.to_raw_eq
Mathlib.Meta.NormNum.isInt_mul
Mathlib.Meta.NormNum.IsInt.of_raw
Mathlib.Meta.NormNum.IsNat.to_isInt
Mathlib.Meta.NormNum.IsNat.of_raw
Mathlib.Tactic.Ring.neg_zero
Mathlib.Tactic.Ring.pow_congr
Mathlib.Tactic.Ring.pow_add
Mathlib.Tactic.Ring.single_pow
Mathlib.Tactic.Ring.one_pow
Mathlib.Tactic.Ring.pow_zero
Mathlib.Tactic.Ring.add_mul
Mathlib.Tactic.Ring.mul_add
Mathlib.Tactic.Ring.one_mul
Mathlib.Tactic.Ring.mul_zero
Mathlib.Tactic.Ring.add_pf_add_zero
Mathlib.Tactic.Ring.zero_mul
sq
sq_add_sq_mul 📖Monoid.toNatPow
instMonoid
cast_mul
cast_add
cast_pow
sq_add_sq_mul
Int.natCast_natAbs
sq_abs

Nat.Prime

Theorems

NameKindAssumesProvesValidatesDepends On
mod_four_ne_three_of_dvd_isSquare_neg_one 📖Finset
Finset.instMembership
Nat.primeFactors
IsSquare
ZMod
Distrib.toMul
NonUnitalNonAssocSemiring.toDistrib
NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring
NonUnitalNonAssocCommRing.toNonUnitalNonAssocRing
NonUnitalCommRing.toNonUnitalNonAssocCommRing
CommRing.toNonUnitalCommRing
ZMod.commRing
NegZeroClass.toNeg
SubNegZeroMonoid.toNegZeroClass
SubtractionMonoid.toSubNegZeroMonoid
SubtractionCommMonoid.toSubtractionMonoid
AddCommGroup.toDivisionAddCommMonoid
Ring.toAddCommGroup
CommRing.toRing
AddMonoidWithOne.toOne
AddGroupWithOne.toAddMonoidWithOne
Ring.toAddGroupWithOne
Nat.mod_four_ne_three_of_mem_primeFactors_of_isSquare_neg_one
sq_add_sq 📖mathematicalMonoid.toNatPow
Nat.instMonoid
GaussianInt.sq_add_sq_of_nat_prime_of_not_irreducible
irreducible_iff_prime
IsDomain.toIsCancelMulZero
EuclideanDomain.instIsDomain
instDecompositionMonoidOfNonemptyGCDMonoid
IsBezout.nonemptyGCDMonoid
IsBezout.of_isPrincipalIdealRing
EuclideanDomain.to_principal_ideal_domain
GaussianInt.prime_iff_mod_four_eq_three_of_nat_prime

ZMod

Theorems

NameKindAssumesProvesValidatesDepends On
isSquare_neg_one_iff 📖mathematicalSquarefree
Nat.instMonoid
IsSquare
ZMod
Distrib.toMul
NonUnitalNonAssocSemiring.toDistrib
NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring
NonUnitalNonAssocCommRing.toNonUnitalNonAssocRing
NonUnitalCommRing.toNonUnitalNonAssocCommRing
CommRing.toNonUnitalCommRing
commRing
NegZeroClass.toNeg
SubNegZeroMonoid.toNegZeroClass
SubtractionMonoid.toSubNegZeroMonoid
SubtractionCommMonoid.toSubtractionMonoid
AddCommGroup.toDivisionAddCommMonoid
Ring.toAddCommGroup
CommRing.toRing
AddMonoidWithOne.toOne
AddGroupWithOne.toAddMonoidWithOne
Ring.toAddGroupWithOne
isSquare_neg_one_iff_forall_mem_primeFactors_mod_four_ne_three
isSquare_neg_one_iff' 📖mathematicalSquarefree
Nat.instMonoid
IsSquare
ZMod
Distrib.toMul
NonUnitalNonAssocSemiring.toDistrib
NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring
NonUnitalNonAssocCommRing.toNonUnitalNonAssocRing
NonUnitalCommRing.toNonUnitalNonAssocCommRing
CommRing.toNonUnitalCommRing
commRing
NegZeroClass.toNeg
SubNegZeroMonoid.toNegZeroClass
SubtractionMonoid.toSubNegZeroMonoid
SubtractionCommMonoid.toSubtractionMonoid
AddCommGroup.toDivisionAddCommMonoid
Ring.toAddCommGroup
CommRing.toRing
AddMonoidWithOne.toOne
AddGroupWithOne.toAddMonoidWithOne
Ring.toAddGroupWithOne
Nat.instAtLeastTwoHAddOfNat
isSquare_neg_one_iff_forall_mem_primeFactors_mod_four_ne_three
induction_on_primes
Nat.instCharZero
Nat.mem_primeFactors
dvd_of_mul_right_dvd
Squarefree.ne_zero
Nat.instNontrivial
dvd_of_mul_left_dvd
natCast_eq_natCast_iff'
Nat.cast_mul
Nat.dvd_of_mem_primeFactors
isSquare_neg_one_iff_forall_mem_primeFactors_mod_four_ne_three 📖mathematicalSquarefree
Nat.instMonoid
IsSquare
ZMod
Distrib.toMul
NonUnitalNonAssocSemiring.toDistrib
NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring
NonUnitalNonAssocCommRing.toNonUnitalNonAssocRing
NonUnitalCommRing.toNonUnitalNonAssocCommRing
CommRing.toNonUnitalCommRing
commRing
NegZeroClass.toNeg
SubNegZeroMonoid.toNegZeroClass
SubtractionMonoid.toSubNegZeroMonoid
SubtractionCommMonoid.toSubtractionMonoid
AddCommGroup.toDivisionAddCommMonoid
Ring.toAddCommGroup
CommRing.toRing
AddMonoidWithOne.toOne
AddGroupWithOne.toAddMonoidWithOne
Ring.toAddGroupWithOne
Nat.mod_four_ne_three_of_mem_primeFactors_of_isSquare_neg_one
induction_on_primes
Squarefree.ne_zero
Nat.instNontrivial
MulZeroClass.mul_zero
Unique.instSubsingleton
Irreducible.not_isUnit
mul_dvd_mul_left
Nat.Prime.dvd_iff_not_coprime
exists_sq_eq_neg_one_iff
Nat.mem_primeFactors
isSquare_neg_one_mul
Squarefree.of_mul_right
Nat.prime_of_mem_primeFactors
dvd_mul_of_dvd_right
Nat.dvd_of_mem_primeFactors
isSquare_neg_one_mul 📖IsSquare
ZMod
Distrib.toMul
NonUnitalNonAssocSemiring.toDistrib
NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring
NonUnitalNonAssocCommRing.toNonUnitalNonAssocRing
NonUnitalCommRing.toNonUnitalNonAssocCommRing
CommRing.toNonUnitalCommRing
commRing
NegZeroClass.toNeg
SubNegZeroMonoid.toNegZeroClass
SubtractionMonoid.toSubNegZeroMonoid
SubtractionCommMonoid.toSubtractionMonoid
AddCommGroup.toDivisionAddCommMonoid
Ring.toAddCommGroup
CommRing.toRing
AddMonoidWithOne.toOne
AddGroupWithOne.toAddMonoidWithOne
Ring.toAddGroupWithOne
RingEquiv.map_neg_one
IsSquare.map
MonoidWithZeroHomClass.toMonoidHomClass
RingHomClass.toMonoidWithZeroHomClass
RingEquivClass.toRingHomClass
RingEquiv.instRingEquivClass
isSquare_neg_one_of_dvd 📖IsSquare
ZMod
Distrib.toMul
NonUnitalNonAssocSemiring.toDistrib
NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring
NonUnitalNonAssocCommRing.toNonUnitalNonAssocRing
NonUnitalCommRing.toNonUnitalNonAssocCommRing
CommRing.toNonUnitalCommRing
commRing
NegZeroClass.toNeg
SubNegZeroMonoid.toNegZeroClass
SubtractionMonoid.toSubNegZeroMonoid
SubtractionCommMonoid.toSubtractionMonoid
AddCommGroup.toDivisionAddCommMonoid
Ring.toAddCommGroup
CommRing.toRing
AddMonoidWithOne.toOne
AddGroupWithOne.toAddMonoidWithOne
Ring.toAddGroupWithOne
charP
map_one
MonoidHomClass.toOneHomClass
MonoidWithZeroHomClass.toMonoidHomClass
RingHomClass.toMonoidWithZeroHomClass
RingHom.instRingHomClass
map_neg
RingHomClass.toAddMonoidHomClass
IsSquare.map
isSquare_neg_one_of_eq_sq_add_sq_of_coprime 📖mathematicalMonoid.toNatPow
Nat.instMonoid
IsSquare
ZMod
Distrib.toMul
NonUnitalNonAssocSemiring.toDistrib
NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring
NonUnitalNonAssocCommRing.toNonUnitalNonAssocRing
NonUnitalCommRing.toNonUnitalNonAssocCommRing
CommRing.toNonUnitalCommRing
commRing
NegZeroClass.toNeg
SubNegZeroMonoid.toNegZeroClass
SubtractionMonoid.toSubNegZeroMonoid
SubtractionCommMonoid.toSubtractionMonoid
AddCommGroup.toDivisionAddCommMonoid
Ring.toAddCommGroup
CommRing.toRing
AddMonoidWithOne.toOne
AddGroupWithOne.toAddMonoidWithOne
Ring.toAddGroupWithOne
isSquare_neg_one_of_eq_sq_add_sq_of_isCoprime
Nat.cast_add
Nat.cast_pow
Nat.Coprime.isCoprime
isSquare_neg_one_of_eq_sq_add_sq_of_isCoprime 📖mathematicalMonoid.toNatPow
Int.instMonoid
IsCoprime
Int.instCommSemiring
IsSquare
ZMod
Distrib.toMul
NonUnitalNonAssocSemiring.toDistrib
NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring
NonUnitalNonAssocCommRing.toNonUnitalNonAssocRing
NonUnitalCommRing.toNonUnitalNonAssocCommRing
CommRing.toNonUnitalCommRing
commRing
NegZeroClass.toNeg
SubNegZeroMonoid.toNegZeroClass
SubtractionMonoid.toSubNegZeroMonoid
SubtractionCommMonoid.toSubtractionMonoid
AddCommGroup.toDivisionAddCommMonoid
Ring.toAddCommGroup
CommRing.toRing
AddMonoidWithOne.toOne
AddGroupWithOne.toAddMonoidWithOne
Ring.toAddGroupWithOne
IsCoprime.pow
Nat.instAtLeastTwoHAddOfNat
IsCoprime.pow_left_iff
zero_lt_two
Nat.instZeroLEOneClass
IsOrderedAddMonoid.toAddLeftMono
Nat.instIsOrderedAddMonoid
IsCoprime.of_add_mul_right_right
Mathlib.Tactic.LinearCombination.eq_of_eq
AddRightCancelSemigroup.toIsRightCancelAdd
Mathlib.Tactic.LinearCombination.add_eq_eq
Mathlib.Tactic.LinearCombination.mul_const_eq
Mathlib.Tactic.LinearCombination.eq_rearrange
Mathlib.Tactic.Ring.of_eq
Mathlib.Tactic.Ring.sub_congr
Mathlib.Tactic.Ring.add_congr
Mathlib.Tactic.Ring.mul_congr
Mathlib.Tactic.Ring.atom_pf
Mathlib.Tactic.Ring.add_mul
Mathlib.Tactic.Ring.mul_add
Mathlib.Tactic.Ring.mul_pf_left
Mathlib.Tactic.Ring.mul_pf_right
Mathlib.Tactic.Ring.one_mul
Mathlib.Tactic.Ring.mul_zero
Mathlib.Tactic.Ring.add_pf_add_zero
Mathlib.Tactic.Ring.zero_mul
Mathlib.Tactic.Ring.mul_pp_pf_overlap
Mathlib.Meta.NormNum.IsNat.to_raw_eq
Mathlib.Meta.NormNum.isNat_add
Mathlib.Meta.NormNum.IsNat.of_raw
Mathlib.Tactic.Ring.neg_congr
Mathlib.Tactic.Ring.cast_pos
Mathlib.Meta.NormNum.isNat_ofNat
Mathlib.Tactic.Ring.neg_add
Mathlib.Tactic.Ring.neg_one_mul
Mathlib.Meta.NormNum.IsInt.to_raw_eq
Mathlib.Meta.NormNum.isInt_mul
Mathlib.Meta.NormNum.IsInt.of_raw
Mathlib.Meta.NormNum.IsNat.to_isInt
Mathlib.Tactic.Ring.neg_zero
Mathlib.Tactic.Ring.sub_pf
Mathlib.Meta.NormNum.IsInt.to_isNat
Mathlib.Tactic.Ring.add_pf_add_gt
Mathlib.Tactic.Ring.pow_congr
Mathlib.Tactic.Ring.pow_add
Mathlib.Tactic.Ring.single_pow
Mathlib.Tactic.Ring.mul_pow
Mathlib.Tactic.Ring.one_pow
Mathlib.Tactic.Ring.pow_zero
Mathlib.Tactic.Ring.neg_mul
Mathlib.Tactic.Ring.mul_one
Mathlib.Tactic.Ring.add_pf_add_lt
Mathlib.Tactic.Ring.add_pf_zero_add
Mathlib.Tactic.Ring.add_pf_add_overlap_zero
Mathlib.Meta.NormNum.isInt_add
Mathlib.Tactic.Ring.add_overlap_pf_zero
Mathlib.Tactic.Ring.add_pf_add_overlap
Mathlib.Tactic.Ring.add_overlap_pf
Mathlib.Tactic.Ring.cast_zero
Nat.cast_one
intCast_eq_intCast_iff_dvd_sub

(root)

Definitions

NameCategoryTheorems
instDecidableExistsNatEqHAddHPowOfNat_mathlib 📖CompOp

Theorems

NameKindAssumesProvesValidatesDepends On
sq_add_sq_mul 📖mathematicalDistrib.toAdd
NonUnitalNonAssocSemiring.toDistrib
NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring
NonUnitalNonAssocCommRing.toNonUnitalNonAssocRing
NonUnitalCommRing.toNonUnitalNonAssocCommRing
CommRing.toNonUnitalCommRing
Monoid.toNatPow
MonoidWithZero.toMonoid
Semiring.toMonoidWithZero
CommSemiring.toSemiring
CommRing.toCommSemiring
Distrib.toMulMathlib.Tactic.Ring.of_eq
Mathlib.Tactic.Ring.mul_congr
Mathlib.Tactic.Ring.add_congr
Mathlib.Tactic.Ring.pow_congr
Mathlib.Tactic.Ring.atom_pf
Mathlib.Tactic.Ring.cast_pos
Mathlib.Meta.NormNum.isNat_ofNat
Mathlib.Tactic.Ring.pow_add
Mathlib.Tactic.Ring.single_pow
Mathlib.Tactic.Ring.mul_pow
Mathlib.Tactic.Ring.one_mul
Mathlib.Tactic.Ring.one_pow
Mathlib.Tactic.Ring.pow_zero
Mathlib.Tactic.Ring.add_mul
Mathlib.Tactic.Ring.mul_add
Mathlib.Tactic.Ring.mul_pf_left
Mathlib.Tactic.Ring.mul_zero
Mathlib.Tactic.Ring.add_pf_add_zero
Mathlib.Tactic.Ring.zero_mul
Mathlib.Tactic.Ring.add_pf_add_lt
Mathlib.Tactic.Ring.add_pf_zero_add
Mathlib.Tactic.Ring.mul_pf_right
Mathlib.Tactic.Ring.sub_congr
Mathlib.Tactic.Ring.sub_pf
Mathlib.Tactic.Ring.neg_add
Mathlib.Tactic.Ring.neg_mul
Mathlib.Tactic.Ring.neg_one_mul
Mathlib.Meta.NormNum.IsInt.to_raw_eq
Mathlib.Meta.NormNum.isInt_mul
Mathlib.Meta.NormNum.IsInt.of_raw
Mathlib.Meta.NormNum.IsNat.to_isInt
Mathlib.Meta.NormNum.IsNat.of_raw
Mathlib.Tactic.Ring.neg_zero
Mathlib.Tactic.Ring.pow_nat
Mathlib.Tactic.Ring.coeff_one
Mathlib.Tactic.Ring.pow_one_cast
Mathlib.Tactic.Ring.pow_bit0
Mathlib.Tactic.Ring.pow_one
Mathlib.Tactic.Ring.mul_pp_pf_overlap
Mathlib.Meta.NormNum.IsNat.to_raw_eq
Mathlib.Meta.NormNum.isNat_add
Mathlib.Tactic.Ring.add_pf_add_gt
Mathlib.Tactic.Ring.mul_one
Mathlib.Meta.NormNum.IsInt.to_isNat
Mathlib.Tactic.Ring.add_pf_add_overlap
Mathlib.Tactic.Ring.add_overlap_pf
Mathlib.Meta.NormNum.isInt_add
Mathlib.Tactic.Ring.add_pf_add_overlap_zero
Mathlib.Tactic.Ring.add_overlap_pf_zero

---

← Back to Index