Compfiles/Usa1990P3.lean
Explanation legend Lean4 Domain Explanation Language (L4DEL)
L4DEL explanations are a separate layer. They do not change the Lean source. Intuition is explanatory prose; numbered items are a reading path; sources link the wording back to evidence.
- L4DEL
- Lean4 Domain Explanation Language
Credit: The upstream authors and contributors retain credit for the project and mathematics. lean4-explainer only renders their pinned source and adds the separately disclosed explanation layer.
Project sources: Pinned compfiles documentation, Pinned compfiles corpus index
51 declarations, 0 contain sorry, 0 declared as axioms
USA Mathematical Olympiad 1990, Problem 3
Show that for any odd positive integer n, we can always divide the set {n, n+1, n+2, ... , n+32} into two parts, one with 14 numbers and one with 19, so that the numbers in each part can be arranged in a circle, with each number relatively prime to its two neighbours.
Imports (7)
Imported by 1 file
- def
Usa1990P3.ValidCircleDocumented declaration: ValidCircle line 35 sourceSource documentation
A circular arrangement
a : Fin k → ℕofknumbers is valid if every entry is relatively prime to its cyclically-next neighbour (and hence also to its cyclically previous neighbour, sinceNat.Coprimeis symmetric).standard axioms: propext what this means
Statement uses:
Nat,NeZero,FinProof uses:
Nat.Coprime,HAdd.hAdd,OfNat.ofNat7 instances, coercions and auxiliary constants left out.
def ValidCircle {k : ℕ} [NeZero k] (a : Fin k → ℕ) : Prop := … - lemma
Usa1990P3.coprime_succ_self'Consecutive integers are coprime line 62 sourceSource documentation
Consecutive integers are coprime.
standard axioms: Quot.sound, propext what this means
Statement uses:
Nat,Nat.Coprime,HAdd.hAdd,OfNat.ofNatProof uses:
Eq.mpr,id,Eq,congrArg,propext,Nat.coprime_self_add_right,Nat.coprime_one_right6 instances, coercions and auxiliary constants left out.
Tactic trace: 2 steps
Open to load the checked before-and-after goal states.
lemma coprime_succ_self' (m : ℕ) : Nat.Coprime m (m + 1) := by …
- lemma
Usa1990P3.coprime_succ_genn + cis coprime to its successor line 67 sourceSource documentation
n + cis coprime to its successor.standard axioms: Quot.sound, propext what this means
Statement uses:
Nat,Nat.Coprime,HAdd.hAdd,OfNat.ofNatProof uses:
Eq,Mathlib.Tactic.Ring.of_eq,Nat.rawCast,HMul.hMul,HPow.hPow,Mathlib.Tactic.Ring.Common.add_congr,Mathlib.Tactic.Ring.Common.atom_pf,rfl,Eq.mpr,id,congrArg,Eq.symm,Eq.refl,Mathlib.Tactic.Ring.cast_pos,Mathlib.Meta.NormNum.isNat_ofNat,Mathlib.Tactic.Ring.Common.add_pf_add_gt,Mathlib.Tactic.Ring.Common.add_pf_add_zero,Mathlib.Tactic.Ring.Common.add_pf_add_lt,Mathlib.Tactic.Ring.Common.add_pf_zero_add, Usa1990P3.coprime_succ_self'23 instances, coercions and auxiliary constants left out.
Tactic trace: 4 steps
Open to load the checked before-and-after goal states.
lemma coprime_succ_gen (n c : ℕ) : Nat.Coprime (n + c) (n + (c + 1)) := by …
- lemma
Usa1990P3.coprime_add_prime_rightIfpis prime and does not dividen + c, thenn + candn + c + pare coprime (any common divisor divides their differencep) line 74 sourceSource documentation
If
pis prime and does not dividen + c, thenn + candn + c + pare coprime (any common divisor divides their differencep).standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat,Nat.Prime,Not,Dvd.dvd,HAdd.hAdd,Nat.CoprimeProof uses:
Eq,Mathlib.Tactic.Ring.of_eq,HMul.hMul,HPow.hPow,Nat.rawCast,OfNat.ofNat,Mathlib.Tactic.Ring.Common.add_congr,Mathlib.Tactic.Ring.Common.atom_pf,rfl,Eq.mpr,id,congrArg,Eq.symm,Eq.refl,Mathlib.Tactic.Ring.Common.add_pf_add_lt,Mathlib.Tactic.Ring.Common.add_pf_zero_add,propext,Nat.coprime_self_add_right,Nat.coprime_comm,Nat.Prime.coprime_iff_not_dvd22 instances, coercions and auxiliary constants left out.
Tactic trace: 4 steps
Open to load the checked before-and-after goal states.
lemma coprime_add_prime_right {p : ℕ} (hp : p.Prime) {n c : ℕ} (h : ¬ p ∣ n + c) : Nat.Coprime (n + c) (n + (c + p)) := by …Mentions: h
- lemma
Usa1990P3.coprime_add_prime_leftThe symmetric version ofcoprime_add_prime_rightline 81 sourceSource documentation
The symmetric version of
coprime_add_prime_right.standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat,Nat.Prime,Not,Dvd.dvd,HAdd.hAdd,Nat.CoprimeProof uses:
Iff.mpr,Nat.coprime_comm, Usa1990P3.coprime_add_prime_right6 instances, coercions and auxiliary constants left out.
lemma coprime_add_prime_left {p : ℕ} (hp : p.Prime) {n c : ℕ} (h : ¬ p ∣ n + c) : Nat.Coprime (n + (c + p)) (n + c) := …Mentions: h
- lemma
Usa1990P3.coprime_add_twoTwo odd numbers at distance2are coprime line 86 sourceSource documentation
Two odd numbers at distance
2are coprime.standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat,Not,Dvd.dvd,OfNat.ofNat,HAdd.hAdd,Nat.CoprimeProof uses: Usa1990P3.coprime_add_prime_right,
Nat.prime_two8 instances, coercions and auxiliary constants left out.
lemma coprime_add_two {n c : ℕ} (h : ¬ 2 ∣ n + c) : Nat.Coprime (n + c) (n + (c + 2)) := …Mentions: h
- def
Usa1990P3.offA1Offsets of the first circle when13 ∤ n:[n, n+1, …, n+13]line 94 sourceSource documentation
Offsets of the first circle when
13 ∤ n:[n, n+1, …, n+13].no axioms what this means
Statement uses:
Fin,OfNat.ofNat,Nat3 instances, coercions and auxiliary constants left out.
def offA1 (i : Fin 14) : ℕ := i.val
- def
Usa1990P3.offB1aOffsets of the second circle when13 ∤ nandn ≢ 2 [MOD 17]:[n+15, n+14, n+16, n+17, …, n+32]line 98 sourceSource documentation
Offsets of the second circle when
13 ∤ nandn ≢ 2 [MOD 17]:[n+15, n+14, n+16, n+17, …, n+32].no axioms what this means
Statement uses:
Fin,OfNat.ofNat,NatProof uses:
ite,Eq,HAdd.hAdd6 instances, coercions and auxiliary constants left out.
def offB1a (i : Fin 19) : ℕ := …
- def
Usa1990P3.offB1bOffsets of the second circle when13 ∤ nandn ≡ 2 [MOD 17]:[n+14, n+15, …, n+30, n+32, n+31]line 103 sourceSource documentation
Offsets of the second circle when
13 ∤ nandn ≡ 2 [MOD 17]:[n+14, n+15, …, n+30, n+32, n+31].no axioms what this means
Statement uses:
Fin,OfNat.ofNat,NatProof uses:
ite,Eq,HAdd.hAdd6 instances, coercions and auxiliary constants left out.
def offB1b (i : Fin 19) : ℕ := …
- def
Usa1990P3.offA2Offsets of the first circle when13 ∣ n:[n+19, n+20, …, n+32]line 107 sourceSource documentation
Offsets of the first circle when
13 ∣ n:[n+19, n+20, …, n+32].no axioms what this means
Statement uses:
Fin,OfNat.ofNat,NatProof uses:
HAdd.hAdd5 instances, coercions and auxiliary constants left out.
def offA2 (i : Fin 14) : ℕ := i.val + 19
- def
Usa1990P3.offB2aOffsets of the second circle when13 ∣ nandn ≢ 16 [MOD 17]:[n+1, n, n+2, n+3, …, n+18]line 111 sourceSource documentation
Offsets of the second circle when
13 ∣ nandn ≢ 16 [MOD 17]:[n+1, n, n+2, n+3, …, n+18].no axioms what this means
Statement uses:
Fin,OfNat.ofNat,NatProof uses:
ite,Eq4 instances, coercions and auxiliary constants left out.
def offB2a (i : Fin 19) : ℕ := …
- def
Usa1990P3.offB2bOffsets of the second circle when13 ∣ nandn ≡ 16 [MOD 17]:[n, n+1, …, n+16, n+18, n+17]line 116 sourceSource documentation
Offsets of the second circle when
13 ∣ nandn ≡ 16 [MOD 17]:[n, n+1, …, n+16, n+18, n+17].no axioms what this means
Statement uses:
Fin,OfNat.ofNat,NatProof uses:
ite,Eq4 instances, coercions and auxiliary constants left out.
def offB2b (i : Fin 19) : ℕ := …
- def
Usa1990P3.a1First circle when13 ∤ nline 120 sourceSource documentation
First circle when
13 ∤ n.no axioms what this means
Statement uses:
Nat,Fin,OfNat.ofNatProof uses:
HAdd.hAdd, Usa1990P3.offA14 instances, coercions and auxiliary constants left out.
def a1 (n : ℕ) (i : Fin 14) : ℕ := n + offA1 i
Mentions: Usa1990P3.offA1
- def
Usa1990P3.b1aSecond circle when13 ∤ nandn ≢ 2 [MOD 17]line 123 sourceSource documentation
Second circle when
13 ∤ nandn ≢ 2 [MOD 17].no axioms what this means
Statement uses:
Nat,Fin,OfNat.ofNatProof uses:
HAdd.hAdd, Usa1990P3.offB1a4 instances, coercions and auxiliary constants left out.
def b1a (n : ℕ) (i : Fin 19) : ℕ := n + offB1a i
Mentions: Usa1990P3.offB1a
- def
Usa1990P3.b1bSecond circle when13 ∤ nandn ≡ 2 [MOD 17]line 126 sourceSource documentation
Second circle when
13 ∤ nandn ≡ 2 [MOD 17].no axioms what this means
Statement uses:
Nat,Fin,OfNat.ofNatProof uses:
HAdd.hAdd, Usa1990P3.offB1b4 instances, coercions and auxiliary constants left out.
def b1b (n : ℕ) (i : Fin 19) : ℕ := n + offB1b i
Mentions: Usa1990P3.offB1b
- def
Usa1990P3.a2First circle when13 ∣ nline 129 sourceSource documentation
First circle when
13 ∣ n.no axioms what this means
Statement uses:
Nat,Fin,OfNat.ofNatProof uses:
HAdd.hAdd, Usa1990P3.offA24 instances, coercions and auxiliary constants left out.
def a2 (n : ℕ) (i : Fin 14) : ℕ := n + offA2 i
Mentions: Usa1990P3.offA2
- def
Usa1990P3.b2aSecond circle when13 ∣ nandn ≢ 16 [MOD 17]line 132 sourceSource documentation
Second circle when
13 ∣ nandn ≢ 16 [MOD 17].no axioms what this means
Statement uses:
Nat,Fin,OfNat.ofNatProof uses:
HAdd.hAdd, Usa1990P3.offB2a4 instances, coercions and auxiliary constants left out.
def b2a (n : ℕ) (i : Fin 19) : ℕ := n + offB2a i
Mentions: Usa1990P3.offB2a
- def
Usa1990P3.b2bSecond circle when13 ∣ nandn ≡ 16 [MOD 17]line 135 sourceSource documentation
Second circle when
13 ∣ nandn ≡ 16 [MOD 17].no axioms what this means
Statement uses:
Nat,Fin,OfNat.ofNatProof uses:
HAdd.hAdd, Usa1990P3.offB2b4 instances, coercions and auxiliary constants left out.
def b2b (n : ℕ) (i : Fin 19) : ℕ := n + offB2b i …
Mentions: Usa1990P3.offB2b
- lemma
Usa1990P3.offA1_injectiveline 141 sourceno axioms what this means
Statement uses:
Function.Injective,Fin,OfNat.ofNat,Nat, Usa1990P3.offA1Proof uses:
Eq,Fin.ext2 instances, coercions and auxiliary constants left out.
- lemma
Usa1990P3.offA2_injectiveline 143 sourcestandard axioms: propext what this means
Statement uses:
Function.Injective,Fin,OfNat.ofNat,Nat, Usa1990P3.offA2Proof uses:
Eq,Fin.ext,Nat.add_right_cancel3 instances, coercions and auxiliary constants left out.
- lemma
Usa1990P3.offB1a_injectiveline 146 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Function.Injective,Fin,OfNat.ofNat,Nat, Usa1990P3.offB1aProof uses:
Eq,Fin.ext,Decidable,Not,Eq.mp,HAdd.hAdd,ite,congrArg,ite_eq_right,congrFun',ite_eq_left16 instances, coercions and auxiliary constants left out.
Tactic trace: 7 steps
Open to load the checked before-and-after goal states.
- lemma
Usa1990P3.offB1b_injectiveline 152 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Function.Injective,Fin,OfNat.ofNat,Nat, Usa1990P3.offB1bProof uses:
Eq,Fin.ext,Decidable,Not,Eq.mp,HAdd.hAdd,ite,congrArg,ite_eq_right,congrFun',ite_eq_left16 instances, coercions and auxiliary constants left out.
Tactic trace: 7 steps
Open to load the checked before-and-after goal states.
- lemma
Usa1990P3.offB2a_injectiveline 158 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Function.Injective,Fin,OfNat.ofNat,Nat, Usa1990P3.offB2aProof uses:
Eq,Fin.ext,Decidable,Not,Eq.mp,ite,congrArg,ite_eq_right,congrFun',ite_eq_left14 instances, coercions and auxiliary constants left out.
Tactic trace: 7 steps
Open to load the checked before-and-after goal states.
- lemma
Usa1990P3.offB2b_injectiveline 164 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Function.Injective,Fin,OfNat.ofNat,Nat, Usa1990P3.offB2bProof uses:
Eq,Fin.ext,Decidable,Not,Eq.mp,ite,congrArg,ite_eq_right,congrFun',ite_eq_left14 instances, coercions and auxiliary constants left out.
Tactic trace: 7 steps
Open to load the checked before-and-after goal states.
- lemma
Usa1990P3.injective_n_addAdding the same constant preserves injectivity line 171 sourceSource documentation
Adding the same constant preserves injectivity.
standard axioms: propext what this means
Statement uses:
Nat,Fin,Function.Injective,HAdd.hAddProof uses:
Eq,Nat.add_left_cancel4 instances, coercions and auxiliary constants left out.
lemma injective_n_add {k : ℕ} {off : Fin k → ℕ} (h : Function.Injective off) (n : ℕ) : Function.Injective (fun i ↦ n + off i) := …Mentions: h
- lemma
Usa1990P3.offA1_leline 175 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Fin,OfNat.ofNat,Nat,LE.le, Usa1990P3.offA1Proof uses:
LT.lt,Fin.isLt,id7 instances, coercions and auxiliary constants left out.
Tactic trace: 3 steps
Open to load the checked before-and-after goal states.
- lemma
Usa1990P3.offA1_le32line 180 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Fin,OfNat.ofNat,Nat,LE.le, Usa1990P3.offA1Proof uses:
LE.le.trans, Usa1990P3.offA1_le,Mathlib.Meta.NormNum.isNat_le_true,Mathlib.Meta.NormNum.isNat_ofNat,Eq.refl,Bool,Bool.true11 instances, coercions and auxiliary constants left out.
Tactic trace: 1 steps
Open to load the checked before-and-after goal states.
- lemma
Usa1990P3.offA2_geline 182 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Fin,OfNat.ofNat,Nat,LE.le, Usa1990P3.offA2Proof uses:
id5 instances, coercions and auxiliary constants left out.
Tactic trace: 2 steps
Open to load the checked before-and-after goal states.
- lemma
Usa1990P3.offA2_le32line 186 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Fin,OfNat.ofNat,Nat,LE.le, Usa1990P3.offA2Proof uses:
LT.lt,Fin.isLt,id7 instances, coercions and auxiliary constants left out.
Tactic trace: 3 steps
Open to load the checked before-and-after goal states.
- lemma
Usa1990P3.offB1a_geline 191 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Fin,OfNat.ofNat,Nat,LE.le, Usa1990P3.offB1aProof uses:
id,Eq,Decidable,ite,HAdd.hAdd,Not,Eq.mpr,congrArg,ite_eq_right,ite_eq_left12 instances, coercions and auxiliary constants left out.
Tactic trace: 5 steps
Open to load the checked before-and-after goal states.
- lemma
Usa1990P3.offB1a_le32line 195 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Fin,OfNat.ofNat,Nat,LE.le, Usa1990P3.offB1aProof uses:
LT.lt,Fin.isLt,id,Eq,Decidable,ite,HAdd.hAdd,Not,Eq.mpr,congrFun',congrArg,ite_eq_right,ite_eq_left13 instances, coercions and auxiliary constants left out.
Tactic trace: 6 steps
Open to load the checked before-and-after goal states.
- lemma
Usa1990P3.offB1b_geline 200 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Fin,OfNat.ofNat,Nat,LE.le, Usa1990P3.offB1bProof uses:
id,Eq,Decidable,ite,HAdd.hAdd,Not,Eq.mpr,congrArg,ite_eq_right,ite_eq_left12 instances, coercions and auxiliary constants left out.
Tactic trace: 5 steps
Open to load the checked before-and-after goal states.
- lemma
Usa1990P3.offB1b_le32line 204 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Fin,OfNat.ofNat,Nat,LE.le, Usa1990P3.offB1bProof uses:
LT.lt,Fin.isLt,id,Eq,Decidable,ite,HAdd.hAdd,Not,Eq.mpr,congrFun',congrArg,ite_eq_right,ite_eq_left13 instances, coercions and auxiliary constants left out.
Tactic trace: 6 steps
Open to load the checked before-and-after goal states.
- lemma
Usa1990P3.offB2a_le18line 209 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Fin,OfNat.ofNat,Nat,LE.le, Usa1990P3.offB2aProof uses:
LT.lt,Fin.isLt,id,Eq,Decidable,ite,Not,Eq.mpr,congrFun',congrArg,ite_eq_right,ite_eq_left11 instances, coercions and auxiliary constants left out.
Tactic trace: 6 steps
Open to load the checked before-and-after goal states.
- lemma
Usa1990P3.offB2a_le32line 214 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Fin,OfNat.ofNat,Nat,LE.le, Usa1990P3.offB2aProof uses:
LE.le.trans, Usa1990P3.offB2a_le18,Mathlib.Meta.NormNum.isNat_le_true,Mathlib.Meta.NormNum.isNat_ofNat,Eq.refl,Bool,Bool.true11 instances, coercions and auxiliary constants left out.
Tactic trace: 1 steps
Open to load the checked before-and-after goal states.
- lemma
Usa1990P3.offB2b_le18line 216 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Fin,OfNat.ofNat,Nat,LE.le, Usa1990P3.offB2bProof uses:
LT.lt,Fin.isLt,id,Eq,Decidable,ite,Not,Eq.mpr,congrFun',congrArg,ite_eq_right,ite_eq_left11 instances, coercions and auxiliary constants left out.
Tactic trace: 6 steps
Open to load the checked before-and-after goal states.
- lemma
Usa1990P3.offB2b_le32line 221 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Fin,OfNat.ofNat,Nat,LE.le, Usa1990P3.offB2bProof uses:
LE.le.trans, Usa1990P3.offB2b_le18,Mathlib.Meta.NormNum.isNat_le_true,Mathlib.Meta.NormNum.isNat_ofNat,Eq.refl,Bool,Bool.true11 instances, coercions and auxiliary constants left out.
Tactic trace: 1 steps
Open to load the checked before-and-after goal states.
- lemma
Usa1990P3.image_add_off_subset_IccIf all offsets are at most32, the image offun i ↦ n + off ilies inFinset.Icc n (n + 32)line 229 sourceSource documentation
If all offsets are at most
32, the image offun i ↦ n + off ilies inFinset.Icc n (n + 32).standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat,Fin,LE.le,OfNat.ofNat,Finset,Finset.image,HAdd.hAdd,Finset.univ,Finset.IccProof uses:
Membership.mem,Eq,Exists,Eq.mp,Eq.trans,And,congrArg,funext,True,congrFun',true_and,Eq.mpr,id,And.intro,Nat.le_add_right28 instances, coercions and auxiliary constants left out.
Tactic trace: 7 steps
Open to load the checked before-and-after goal states.
lemma image_add_off_subset_Icc {k : ℕ} (off : Fin k → ℕ) (h : ∀ i, off i ≤ 32) (n : ℕ) : Finset.univ.image (fun i ↦ n + off i) ⊆ Finset.Icc n (n + 32) := by …Mentions: h
- lemma
Usa1990P3.disjoint_add_offIf the offsets of two families are separated by a constantc, their images (after shifting byn) are disjoint line 241 sourceSource documentation
If the offsets of two families are separated by a constant
c, their images (after shifting byn) are disjoint.standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat,Fin,LE.le,LT.lt,Disjoint,Finset,Finset.image,HAdd.hAdd,Finset.univProof uses:
Eq.mpr,Membership.mem,Not,id,Eq,congrArg,propext,Finset.disjoint_left,Exists,False,Eq.mp,Eq.trans,And,funext,True,congrFun',true_and,Nat.add_left_cancel23 instances, coercions and auxiliary constants left out.
Tactic trace: 9 steps
Open to load the checked before-and-after goal states.
lemma disjoint_add_off {k l : ℕ} {off₁ : Fin k → ℕ} {off₂ : Fin l → ℕ} {c : ℕ} (h₁ : ∀ i, off₁ i ≤ c) (h₂ : ∀ j, c < off₂ j) (n : ℕ) : Disjoint (Finset.univ.image (fun i ↦ n + off₁ i)) (Finset.univ.image (fun j ↦ n + off₂ j)) := by … - lemma
Usa1990P3.image_union_eq_IccTwo disjoint injective families of14and19elements inside the33-element setFinset.Icc n (n + 32)must cover it line 257 sourceSource documentation
Two disjoint injective families of
14and19elements inside the33-element setFinset.Icc n (n + 32)must cover it.standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat,Fin,OfNat.ofNat,Function.Injective,LE.le,Finset,Finset.image,Finset.univ,Finset.Icc,HAdd.hAdd,Disjoint,Eq,Union.unionProof uses:
Finset.eq_of_subset_of_card_le,Finset.union_subset,Eq.mpr,Finset.card,id,congrArg,Finset.card_union_of_disjoint,Finset.card_image_of_injective,Fintype.card,Finset.card_univ,Fintype.card_fin,HSub.hSub,Nat.card_Icc28 instances, coercions and auxiliary constants left out.
Tactic trace: 3 steps
Open to load the checked before-and-after goal states.
lemma image_union_eq_Icc {n : ℕ} {a : Fin 14 → ℕ} {b : Fin 19 → ℕ} (ha : Function.Injective a) (hb : Function.Injective b) (hsub₁ : Finset.univ.image a ⊆ Finset.Icc n (n + 32)) (hsub₂ : Finset.univ.image b ⊆ Finset.Icc n (n + 32)) (hdisj : Disjoint (Finset.univ.image a) (Finset.univ.image b)) : Finset.univ.image a ∪ Finset.univ.image b = Finset.Icc n (n + 32) := by … - lemma
Usa1990P3.validCircle_a1line 273 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat,Not,Dvd.dvd,OfNat.ofNat, Usa1990P3.ValidCircle, Usa1990P3.a1Proof uses:
id,Fin,Eq,HAdd.hAdd,Fin.last,LT.lt,Or,Nat.Coprime,eq_or_lt_of_le,Fin.le_last, Usa1990P3.coprime_add_prime_left,Mathlib.Meta.NormNum.isNat_prime_2,Mathlib.Meta.NormNum.isNat_ofNat,Eq.refl,Bool,Bool.true,Mathlib.Meta.NormNum.isNat_minFac_4,Mathlib.Meta.NormNum.IsNat.raw_refl,Mathlib.Meta.NormNum.minFacHelper_3,Bool.falseand 6 more18 instances, coercions and auxiliary constants left out.
Tactic trace: 14 steps
Open to load the checked before-and-after goal states.
- lemma
Usa1990P3.validCircle_b1aline 286 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat,Odd,Ne,HMod.hMod,OfNat.ofNat, Usa1990P3.ValidCircle, Usa1990P3.b1aProof uses:
id,Fin,Eq,HAdd.hAdd,Fin.last,LT.lt,Or,Nat.Coprime,eq_or_lt_of_le,Fin.le_last, Usa1990P3.coprime_add_prime_left,Mathlib.Meta.NormNum.isNat_prime_2,Mathlib.Meta.NormNum.isNat_ofNat,Eq.refl,Bool,Bool.true,Mathlib.Meta.NormNum.isNat_minFac_4,Mathlib.Meta.NormNum.IsNat.raw_refl,Mathlib.Meta.NormNum.minFacHelper_3,Bool.falseand 18 more43 instances, coercions and auxiliary constants left out.
Tactic trace: 35 steps
Open to load the checked before-and-after goal states.
- lemma
Usa1990P3.validCircle_b1bline 315 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat,Odd,Eq,HMod.hMod,OfNat.ofNat, Usa1990P3.ValidCircle, Usa1990P3.b1bProof uses:
id,Fin,HAdd.hAdd,Fin.last,LT.lt,Or,Nat.Coprime,eq_or_lt_of_le,Fin.le_last, Usa1990P3.coprime_add_prime_left,Mathlib.Meta.NormNum.isNat_prime_2,Mathlib.Meta.NormNum.isNat_ofNat,Eq.refl,Bool,Bool.true,Mathlib.Meta.NormNum.isNat_minFac_4,Mathlib.Meta.NormNum.IsNat.raw_refl,Mathlib.Meta.NormNum.minFacHelper_3,Bool.false,Mathlib.Meta.NormNum.minFacHelper_0and 16 more48 instances, coercions and auxiliary constants left out.
Tactic trace: 36 steps
Open to load the checked before-and-after goal states.
- lemma
Usa1990P3.validCircle_a2line 343 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat,Dvd.dvd,OfNat.ofNat, Usa1990P3.ValidCircle, Usa1990P3.a2Proof uses:
id,Fin,Eq,HAdd.hAdd,Fin.last,LT.lt,Or,Nat.Coprime,eq_or_lt_of_le,Fin.le_last, Usa1990P3.coprime_add_prime_left,Mathlib.Meta.NormNum.isNat_prime_2,Mathlib.Meta.NormNum.isNat_ofNat,Eq.refl,Bool,Bool.true,Mathlib.Meta.NormNum.isNat_minFac_4,Mathlib.Meta.NormNum.IsNat.raw_refl,Mathlib.Meta.NormNum.minFacHelper_3,Bool.falseand 6 more18 instances, coercions and auxiliary constants left out.
Tactic trace: 14 steps
Open to load the checked before-and-after goal states.
- lemma
Usa1990P3.validCircle_b2aline 356 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat,Odd,Ne,HMod.hMod,OfNat.ofNat, Usa1990P3.ValidCircle, Usa1990P3.b2aProof uses:
id,Fin,Eq,HAdd.hAdd,Fin.last,LT.lt,Or,Nat.Coprime,eq_or_lt_of_le,Fin.le_last, Usa1990P3.coprime_add_prime_left,Mathlib.Meta.NormNum.isNat_prime_2,Mathlib.Meta.NormNum.isNat_ofNat,Eq.refl,Bool,Bool.true,Mathlib.Meta.NormNum.isNat_minFac_4,Mathlib.Meta.NormNum.IsNat.raw_refl,Mathlib.Meta.NormNum.minFacHelper_3,Bool.falseand 18 more43 instances, coercions and auxiliary constants left out.
Tactic trace: 36 steps
Open to load the checked before-and-after goal states.
- lemma
Usa1990P3.validCircle_b2bline 386 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat,Odd,Eq,HMod.hMod,OfNat.ofNat, Usa1990P3.ValidCircle, Usa1990P3.b2bProof uses:
id,Fin,HAdd.hAdd,Fin.last,LT.lt,Or,Nat.Coprime,eq_or_lt_of_le,Fin.le_last,Eq.mpr,congrArg,propext,Nat.coprime_comm, Usa1990P3.coprime_add_prime_right,Mathlib.Meta.NormNum.isNat_prime_2,Mathlib.Meta.NormNum.isNat_ofNat,Eq.refl,Bool,Bool.true,Mathlib.Meta.NormNum.isNat_minFac_4and 18 more48 instances, coercions and auxiliary constants left out.
Tactic trace: 37 steps
Open to load the checked before-and-after goal states.
- lemma
Usa1990P3.case1aCase13 ∤ n,n ≢ 2 [MOD 17]line 420 sourceSource documentation
Case
13 ∤ n,n ≢ 2 [MOD 17].standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat,Odd,Not,Dvd.dvd,OfNat.ofNat,Ne,HMod.hMod,Exists,Fin,And,Function.Injective,Disjoint,Finset,Finset.image,Finset.univ,Eq,Union.union,Finset.Icc,HAdd.hAdd, Usa1990P3.ValidCircleProof uses: Usa1990P3.offA1, Usa1990P3.injective_n_add, Usa1990P3.offA1_injective, Usa1990P3.offB1a, Usa1990P3.offB1a_injective,
LE.le, Usa1990P3.image_add_off_subset_Icc, Usa1990P3.offA1_le32, Usa1990P3.offB1a_le32, Usa1990P3.a1, Usa1990P3.b1a, Usa1990P3.disjoint_add_off, Usa1990P3.offA1_le, Usa1990P3.offB1a_ge,Exists.intro,And.intro, Usa1990P3.image_union_eq_Icc, Usa1990P3.validCircle_a1, Usa1990P3.validCircle_b1a32 instances, coercions and auxiliary constants left out.
Tactic trace: 6 steps
Open to load the checked before-and-after goal states.
lemma case1a (n : ℕ) (hn : Odd n) (h13 : ¬ 13 ∣ n) (h17 : n % 17 ≠ 2) : ∃ a : Fin 14 → ℕ, ∃ b : Fin 19 → ℕ, Function.Injective a ∧ Function.Injective b ∧ Disjoint (Finset.univ.image a) (Finset.univ.image b) ∧ Finset.univ.image a ∪ Finset.univ.image b = Finset.Icc n (n + 32) ∧ ValidCircle a ∧ ValidCircle b := by …Mentions: Usa1990P3.ValidCircle
- lemma
Usa1990P3.case1bCase13 ∤ n,n ≡ 2 [MOD 17]line 437 sourceSource documentation
Case
13 ∤ n,n ≡ 2 [MOD 17].standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat,Odd,Not,Dvd.dvd,OfNat.ofNat,Eq,HMod.hMod,Exists,Fin,And,Function.Injective,Disjoint,Finset,Finset.image,Finset.univ,Union.union,Finset.Icc,HAdd.hAdd, Usa1990P3.ValidCircleProof uses: Usa1990P3.offA1, Usa1990P3.injective_n_add, Usa1990P3.offA1_injective, Usa1990P3.offB1b, Usa1990P3.offB1b_injective,
LE.le, Usa1990P3.image_add_off_subset_Icc, Usa1990P3.offA1_le32, Usa1990P3.offB1b_le32, Usa1990P3.a1, Usa1990P3.b1b, Usa1990P3.disjoint_add_off, Usa1990P3.offA1_le, Usa1990P3.offB1b_ge,Exists.intro,And.intro, Usa1990P3.image_union_eq_Icc, Usa1990P3.validCircle_a1, Usa1990P3.validCircle_b1b32 instances, coercions and auxiliary constants left out.
Tactic trace: 6 steps
Open to load the checked before-and-after goal states.
lemma case1b (n : ℕ) (hn : Odd n) (h13 : ¬ 13 ∣ n) (h17 : n % 17 = 2) : ∃ a : Fin 14 → ℕ, ∃ b : Fin 19 → ℕ, Function.Injective a ∧ Function.Injective b ∧ Disjoint (Finset.univ.image a) (Finset.univ.image b) ∧ Finset.univ.image a ∪ Finset.univ.image b = Finset.Icc n (n + 32) ∧ ValidCircle a ∧ ValidCircle b := by …Mentions: Usa1990P3.ValidCircle
- lemma
Usa1990P3.case2aCase13 ∣ n,n ≢ 16 [MOD 17]line 454 sourceSource documentation
Case
13 ∣ n,n ≢ 16 [MOD 17].standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat,Odd,Dvd.dvd,OfNat.ofNat,Ne,HMod.hMod,Exists,Fin,And,Function.Injective,Disjoint,Finset,Finset.image,Finset.univ,Eq,Union.union,Finset.Icc,HAdd.hAdd, Usa1990P3.ValidCircleProof uses: Usa1990P3.offA2, Usa1990P3.injective_n_add, Usa1990P3.offA2_injective, Usa1990P3.offB2a, Usa1990P3.offB2a_injective,
LE.le, Usa1990P3.image_add_off_subset_Icc, Usa1990P3.offA2_le32, Usa1990P3.offB2a_le32, Usa1990P3.a2, Usa1990P3.b2a,Disjoint.symm, Usa1990P3.disjoint_add_off, Usa1990P3.offB2a_le18, Usa1990P3.offA2_ge,Exists.intro,And.intro, Usa1990P3.image_union_eq_Icc, Usa1990P3.validCircle_a2, Usa1990P3.validCircle_b2a32 instances, coercions and auxiliary constants left out.
Tactic trace: 6 steps
Open to load the checked before-and-after goal states.
lemma case2a (n : ℕ) (hn : Odd n) (h13 : 13 ∣ n) (h17 : n % 17 ≠ 16) : ∃ a : Fin 14 → ℕ, ∃ b : Fin 19 → ℕ, Function.Injective a ∧ Function.Injective b ∧ Disjoint (Finset.univ.image a) (Finset.univ.image b) ∧ Finset.univ.image a ∪ Finset.univ.image b = Finset.Icc n (n + 32) ∧ ValidCircle a ∧ ValidCircle b := by …Mentions: Usa1990P3.ValidCircle
- lemma
Usa1990P3.case2bCase13 ∣ n,n ≡ 16 [MOD 17]line 471 sourceSource documentation
Case
13 ∣ n,n ≡ 16 [MOD 17].standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat,Odd,Dvd.dvd,OfNat.ofNat,Eq,HMod.hMod,Exists,Fin,And,Function.Injective,Disjoint,Finset,Finset.image,Finset.univ,Union.union,Finset.Icc,HAdd.hAdd, Usa1990P3.ValidCircleProof uses: Usa1990P3.offA2, Usa1990P3.injective_n_add, Usa1990P3.offA2_injective, Usa1990P3.offB2b, Usa1990P3.offB2b_injective,
LE.le, Usa1990P3.image_add_off_subset_Icc, Usa1990P3.offA2_le32, Usa1990P3.offB2b_le32, Usa1990P3.a2, Usa1990P3.b2b,Disjoint.symm, Usa1990P3.disjoint_add_off, Usa1990P3.offB2b_le18, Usa1990P3.offA2_ge,Exists.intro,And.intro, Usa1990P3.image_union_eq_Icc, Usa1990P3.validCircle_a2, Usa1990P3.validCircle_b2b32 instances, coercions and auxiliary constants left out.
Tactic trace: 6 steps
Open to load the checked before-and-after goal states.
lemma case2b (n : ℕ) (hn : Odd n) (h13 : 13 ∣ n) (h17 : n % 17 = 16) : ∃ a : Fin 14 → ℕ, ∃ b : Fin 19 → ℕ, Function.Injective a ∧ Function.Injective b ∧ Disjoint (Finset.univ.image a) (Finset.univ.image b) ∧ Finset.univ.image a ∪ Finset.univ.image b = Finset.Icc n (n + 32) ∧ ValidCircle a ∧ ValidCircle b := by …Mentions: Usa1990P3.ValidCircle
- problem
Usa1990P3.usa1990_p3line 491 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat,Odd,LT.lt,OfNat.ofNat,Exists,Fin,And,Function.Injective,Disjoint,Finset,Finset.image,Finset.univ,Eq,Union.union,Finset.Icc,HAdd.hAdd, Usa1990P3.ValidCircleProof uses:
dite,Dvd.dvd,HMod.hMod, Usa1990P3.case2b,Not, Usa1990P3.case2a, Usa1990P3.case1b, Usa1990P3.case1a30 instances, coercions and auxiliary constants left out.
Tactic trace: 13 steps
Open to load the checked before-and-after goal states.