Compfiles/Usa2020P2.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
67 declarations, 0 contain sorry, 0 declared as axioms
USA Mathematical Olympiad 2020 Problem 2
An empty 2020 × 2020 × 2020 cube is given, and a 2020 × 2020 grid of square unit cells is drawn on each of its six faces. A beam is a 1 × 1 × 2020 rectangular prism. Several beams are placed inside the cube subject to the following conditions:
- The two 1 × 1 faces of each beam coincide with unit cells lying on opposite faces of the cube. (Hence, there are 3 · 2020² possible positions for a beam.)
- No two beams have intersecting interiors.
- The interiors of each of the four 1 × 2020 faces of each beam touch either a face of the cube or the interior of the face of another beam.
What is the smallest positive number of beams that can be placed to satisfy these conditions?
Imports (11)
- Mathlib.Algebra.Order.BigOperators.Group.Finset
- Mathlib.Algebra.Order.Ring.Star
- Mathlib.Data.Int.ConditionallyCompleteOrder
- Mathlib.Data.Int.Star
- Mathlib.Order.ConditionallyCompleteLattice.Basic
- Mathlib.Tactic.Linarith
- Mathlib.Tactic.Linarith.Lemmas
- Mathlib.Tactic.NormNum.Ineq
- Mathlib.Tactic.Ring.Basic
- Mathlib.Tactic.Zify
- ProblemExtraction
Imported by 1 file
- inductive
Usa2020P2.DirThe three possible orientations of a beam line 84 sourceSource documentation
The three possible orientations of a beam.
no axioms what this means
inductive Dir | X | Y | Z deriving DecidableEq /-- A beam in an `n × n × n` cube, given by its orientation and the two coordinates of its cross-section: * `xBeam j k` occupies `y = j`, `z = k` and spans the `x`-direction; * `yBeam i k` occupies `x = i`, `z = k` and spans the `y`-direction; * `zBeam i j` occupies `x = i`, `y = j` and spans the `z`-direction. -/
- inductive
Usa2020P2.BeamDocumented declaration: Beam line 91 sourceSource documentation
A beam in an
n × n × ncube, given by its orientation and the two coordinates of its cross-section:xBeam j koccupiesy = j,z = kand spans thex-direction;yBeam i koccupiesx = i,z = kand spans they-direction;zBeam i joccupiesx = i,y = jand spans thez-direction.
no axioms what this means
Statement uses:
Natinductive Beam (n : ℕ) | xBeam (j k : Fin n) | yBeam (i k : Fin n) | zBeam (i j : Fin n) deriving DecidableEq variable {n : ℕ} namespace Beam /-- The orientation of a beam. -/ - def
Usa2020P2.Beam.dirThe orientation of a beam line 102 sourceSource documentation
The orientation of a beam.
no axioms what this means
Statement uses:
Nat, Usa2020P2.Beam, Usa2020P2.DirProof uses:
Usa2020P2.Beam.dir.match_1,Fin,Usa2020P2.Dir.X,Usa2020P2.Dir.Y,Usa2020P2.Dir.Zdef dir : Beam n → Dir | xBeam .. => .X | yBeam .. => .Y | zBeam .. => .Z /-- `covers b x y z` means that beam `b` contains the unit cube at coordinates `(x, y, z)`. -/
Mentions: Usa2020P2.Beam, Usa2020P2.Dir, Usa2020P2.Beam.covers
- def
Usa2020P2.Beam.coverscovers b x y zmeans that beambcontains the unit cube at coordinates(x, y, z)line 109 sourceSource documentation
covers b x y zmeans that beambcontains the unit cube at coordinates(x, y, z).no axioms what this means
Statement uses:
Nat, Usa2020P2.Beam,FinProof uses:
Usa2020P2.Beam.dir.match_1,And,Eqdef covers : Beam n → Fin n → Fin n → Fin n → Prop | xBeam j k => fun _ y z => y = j ∧ z = k | yBeam i k => fun x _ z => x = i ∧ z = k | zBeam i j => fun x y _ => x = i ∧ y = j end Beam open Beam /-- The non-intersection condition: two distinct beams do not share a unit cube. -/
Mentions: Usa2020P2.Beam
- def
Usa2020P2.DisjointBeamsThe non-intersection condition: two distinct beams do not share a unit cube line 120 sourceSource documentation
The non-intersection condition: two distinct beams do not share a unit cube.
standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat,Finset, Usa2020P2.BeamProof uses:
Membership.mem,Exists,Fin,And, Usa2020P2.Beam.covers,Eq2 instances, coercions and auxiliary constants left out.
def DisjointBeams (S : Finset (Beam n)) : Prop := …
Mentions: S, Usa2020P2.Beam
- def
Usa2020P2.xSuppThe four side-face support conditions forxBeam j k: faces aty = j,y = j+1,z = k,z = k+1line 125 sourceSource documentation
The four side-face support conditions for
xBeam j k: faces aty = j,y = j+1,z = k,z = k+1.standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat,Finset, Usa2020P2.Beam,FinProof uses:
And,Or,Eq,OfNat.ofNat,Exists,HAdd.hAdd,Membership.mem,Usa2020P2.Beam.xBeam,Usa2020P2.Beam.zBeam,Usa2020P2.Beam.yBeam6 instances, coercions and auxiliary constants left out.
def xSupp {n : ℕ} (S : Finset (Beam n)) (j k : Fin n) : Prop := …Mentions: S, Usa2020P2.Beam
- def
Usa2020P2.ySuppThe four side-face support conditions foryBeam i k: faces atx = i,x = i+1,z = k,z = k+1line 137 sourceSource documentation
The four side-face support conditions for
yBeam i k: faces atx = i,x = i+1,z = k,z = k+1.standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat,Finset, Usa2020P2.Beam,FinProof uses:
And,Or,Eq,OfNat.ofNat,Exists,HAdd.hAdd,Membership.mem,Usa2020P2.Beam.yBeam,Usa2020P2.Beam.zBeam,Usa2020P2.Beam.xBeam6 instances, coercions and auxiliary constants left out.
def ySupp {n : ℕ} (S : Finset (Beam n)) (i k : Fin n) : Prop := …Mentions: S, Usa2020P2.Beam
- def
Usa2020P2.zSuppThe four side-face support conditions forzBeam i j: faces atx = i,x = i+1,y = j,y = j+1line 149 sourceSource documentation
The four side-face support conditions for
zBeam i j: faces atx = i,x = i+1,y = j,y = j+1.standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat,Finset, Usa2020P2.Beam,FinProof uses:
And,Or,Eq,OfNat.ofNat,Exists,HAdd.hAdd,Membership.mem,Usa2020P2.Beam.zBeam,Usa2020P2.Beam.yBeam,Usa2020P2.Beam.xBeam6 instances, coercions and auxiliary constants left out.
def zSupp {n : ℕ} (S : Finset (Beam n)) (i j : Fin n) : Prop := …Mentions: S, Usa2020P2.Beam
- def
Usa2020P2.SuppThe face-support condition for every beam inSline 160 sourceSource documentation
The face-support condition for every beam in
S.standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat,Finset, Usa2020P2.BeamProof uses:
And,Fin,Membership.mem,Usa2020P2.Beam.xBeam, Usa2020P2.xSupp,Usa2020P2.Beam.yBeam, Usa2020P2.ySupp,Usa2020P2.Beam.zBeam, Usa2020P2.zSupp2 instances, coercions and auxiliary constants left out.
def Supp (S : Finset (Beam n)) : Prop := …
Mentions: S, Usa2020P2.Beam
- def
Usa2020P2.zLayerThez-layer of a beam (dummy value forzBeams, which span all layers) line 167 sourceSource documentation
The
z-layer of a beam (dummy value forzBeams, which span all layers).no axioms what this means
Statement uses:
Nat, Usa2020P2.Beam,FinProof uses:
Usa2020P2.Beam.dir.match_1def zLayer : Beam n → Fin n | xBeam _ k => k | yBeam _ k => k | zBeam i _ => i /-- The `x`-layer of a beam (dummy value for `xBeam`s). -/
Mentions: Usa2020P2.Beam
- def
Usa2020P2.xLayerThex-layer of a beam (dummy value forxBeams) line 173 sourceSource documentation
The
x-layer of a beam (dummy value forxBeams).no axioms what this means
Statement uses:
Nat, Usa2020P2.Beam,FinProof uses:
Usa2020P2.Beam.dir.match_1def xLayer : Beam n → Fin n | xBeam j _ => j | yBeam i _ => i | zBeam i _ => i /-- The `y`-layer of a beam (dummy value for `yBeam`s). -/
Mentions: Usa2020P2.Beam
- def
Usa2020P2.yLayerThey-layer of a beam (dummy value foryBeams) line 179 sourceSource documentation
The
y-layer of a beam (dummy value foryBeams).no axioms what this means
Statement uses:
Nat, Usa2020P2.Beam,FinProof uses:
Usa2020P2.Beam.dir.match_1def yLayer : Beam n → Fin n | xBeam j _ => j | yBeam i _ => i | zBeam _ j => j /-- A one-dimensional propagation lemma: if a property of positions always propagates to the left and right neighbors (unless at the boundary), then it holds everywhere once it holds somewhere. -/
Mentions: Usa2020P2.Beam
- theorem
Usa2020P2.fill1dDocumented declaration: fill1d line 187 sourceSource documentation
A one-dimensional propagation lemma: if a property of positions always propagates to the left and right neighbors (unless at the boundary), then it holds everywhere once it holds somewhere.
standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat,Fin,And,Or,Eq,OfNat.ofNat,Exists,HAdd.hAddProof uses:
LT.lt,Fin.mk,Nat.recAux,Eq.mpr,id,congrArg,Fin.mk.congr_simp,add_zero,Fin.ext,Eq.mp,LE.le,HSub.hSub,tsub_zero,le_total37 instances, coercions and auxiliary constants left out.
Tactic trace: 53 steps
Open to load the checked before-and-after goal states.
theorem fill1d {n : ℕ} (P : Fin n → Prop) (hP : ∀ i, P i → (i.val = 0 ∨ ∃ i', i'.val + 1 = i.val ∧ P i') ∧ (i.val + 1 = n ∨ ∃ i', i'.val = i.val + 1 ∧ P i')) {i₀ : Fin n} (hi₀ : P i₀) (i : Fin n) : P i := by …Mentions: P
- theorem
Usa2020P2.fill_xBeam_yAnxBeamin a cube withoutzBeams fills its whole row alongyline 232 sourceSource documentation
An
xBeamin a cube withoutzBeams fills its whole row alongy.standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat,Finset, Usa2020P2.Beam, Usa2020P2.Supp,Fin,Not,Membership.mem,Usa2020P2.Beam.zBeam,Usa2020P2.Beam.xBeamProof uses: Usa2020P2.fill1d,
Or,Eq,OfNat.ofNat,Exists,And,HAdd.hAdd,Usa2020P2.Beam.yBeam, Usa2020P2.xSupp,And.left, Usa2020P2.ySupp, Usa2020P2.zSupp,And.intro,Or.inl,Or.inr,Exists.intro,absurd11 instances, coercions and auxiliary constants left out.
Tactic trace: 18 steps
Open to load the checked before-and-after goal states.
theorem fill_xBeam_y {n : ℕ} {S : Finset (Beam n)} (hS : Supp S) (hz : ∀ i j, zBeam i j ∉ S) {k j : Fin n} (h : xBeam j k ∈ S) (j' : Fin n) : xBeam j' k ∈ S := …Mentions: S, Usa2020P2.Beam, Usa2020P2.Supp, h
- theorem
Usa2020P2.fill_yBeam_xAyBeamin a cube withoutzBeams fills its whole column alongxline 250 sourceSource documentation
A
yBeamin a cube withoutzBeams fills its whole column alongx.standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat,Finset, Usa2020P2.Beam, Usa2020P2.Supp,Fin,Not,Membership.mem,Usa2020P2.Beam.zBeam,Usa2020P2.Beam.yBeamProof uses: Usa2020P2.fill1d,
Or,Eq,OfNat.ofNat,Exists,And,HAdd.hAdd,Usa2020P2.Beam.xBeam, Usa2020P2.ySupp,And.left, Usa2020P2.zSupp,And.right, Usa2020P2.xSupp,And.intro,Or.inl,Or.inr,Exists.intro,absurd11 instances, coercions and auxiliary constants left out.
Tactic trace: 18 steps
Open to load the checked before-and-after goal states.
theorem fill_yBeam_x {n : ℕ} {S : Finset (Beam n)} (hS : Supp S) (hz : ∀ i j, zBeam i j ∉ S) {i k : Fin n} (h : yBeam i k ∈ S) (i' : Fin n) : yBeam i' k ∈ S := …Mentions: S, Usa2020P2.Beam, Usa2020P2.Supp, h
- theorem
Usa2020P2.fill_yBeam_zAyBeamin a cube withoutxBeams fills its whole column alongzline 268 sourceSource documentation
A
yBeamin a cube withoutxBeams fills its whole column alongz.standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat,Finset, Usa2020P2.Beam, Usa2020P2.Supp,Fin,Not,Membership.mem,Usa2020P2.Beam.xBeam,Usa2020P2.Beam.yBeamProof uses: Usa2020P2.fill1d,
Or,Eq,OfNat.ofNat,Exists,And,HAdd.hAdd,Usa2020P2.Beam.zBeam, Usa2020P2.ySupp,And.left, Usa2020P2.zSupp,And.right, Usa2020P2.xSupp,And.intro,Or.inl,Or.inr,Exists.intro,absurd11 instances, coercions and auxiliary constants left out.
Tactic trace: 18 steps
Open to load the checked before-and-after goal states.
theorem fill_yBeam_z {n : ℕ} {S : Finset (Beam n)} (hS : Supp S) (hx : ∀ j k, xBeam j k ∉ S) {i k : Fin n} (h : yBeam i k ∈ S) (k' : Fin n) : yBeam i k' ∈ S := …Mentions: S, Usa2020P2.Beam, Usa2020P2.Supp, h
- theorem
Usa2020P2.fill_xBeam_zAnxBeamin a cube withoutyBeams fills its whole row alongzline 286 sourceSource documentation
An
xBeamin a cube withoutyBeams fills its whole row alongz.standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat,Finset, Usa2020P2.Beam, Usa2020P2.Supp,Fin,Not,Membership.mem,Usa2020P2.Beam.yBeam,Usa2020P2.Beam.xBeamProof uses: Usa2020P2.fill1d,
Or,Eq,OfNat.ofNat,Exists,And,HAdd.hAdd,Usa2020P2.Beam.zBeam, Usa2020P2.xSupp,And.left, Usa2020P2.ySupp, Usa2020P2.zSupp,And.intro,Or.inl,Or.inr,Exists.intro,absurd11 instances, coercions and auxiliary constants left out.
Tactic trace: 18 steps
Open to load the checked before-and-after goal states.
theorem fill_xBeam_z {n : ℕ} {S : Finset (Beam n)} (hS : Supp S) (hy : ∀ i k, yBeam i k ∉ S) {j k : Fin n} (h : xBeam j k ∈ S) (k' : Fin n) : xBeam j k' ∈ S := …Mentions: S, Usa2020P2.Beam, Usa2020P2.Supp, h
- theorem
Usa2020P2.fill_zBeam_xAzBeamin a cube withoutyBeams fills its whole row alongxline 304 sourceSource documentation
A
zBeamin a cube withoutyBeams fills its whole row alongx.standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat,Finset, Usa2020P2.Beam, Usa2020P2.Supp,Fin,Not,Membership.mem,Usa2020P2.Beam.yBeam,Usa2020P2.Beam.zBeamProof uses: Usa2020P2.fill1d,
Or,Eq,OfNat.ofNat,Exists,And,HAdd.hAdd,Usa2020P2.Beam.xBeam, Usa2020P2.zSupp,And.right, Usa2020P2.ySupp, Usa2020P2.xSupp,And.intro,Or.inl,Or.inr,Exists.intro,absurd11 instances, coercions and auxiliary constants left out.
Tactic trace: 18 steps
Open to load the checked before-and-after goal states.
theorem fill_zBeam_x {n : ℕ} {S : Finset (Beam n)} (hS : Supp S) (hy : ∀ i k, yBeam i k ∉ S) {i j : Fin n} (h : zBeam i j ∈ S) (i' : Fin n) : zBeam i' j ∈ S := …Mentions: S, Usa2020P2.Beam, Usa2020P2.Supp, h
- theorem
Usa2020P2.fill_zBeam_yAzBeamin a cube withoutxBeams fills its whole row alongyline 322 sourceSource documentation
A
zBeamin a cube withoutxBeams fills its whole row alongy.standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat,Finset, Usa2020P2.Beam, Usa2020P2.Supp,Fin,Not,Membership.mem,Usa2020P2.Beam.xBeam,Usa2020P2.Beam.zBeamProof uses: Usa2020P2.fill1d,
Or,Eq,OfNat.ofNat,Exists,And,HAdd.hAdd,Usa2020P2.Beam.yBeam, Usa2020P2.zSupp,And.right, Usa2020P2.ySupp, Usa2020P2.xSupp,And.intro,Or.inl,Or.inr,Exists.intro,absurd11 instances, coercions and auxiliary constants left out.
Tactic trace: 18 steps
Open to load the checked before-and-after goal states.
theorem fill_zBeam_y {n : ℕ} {S : Finset (Beam n)} (hS : Supp S) (hx : ∀ j k, xBeam j k ∉ S) {i j : Fin n} (h : zBeam i j ∈ S) (j' : Fin n) : zBeam i j' ∈ S := …Mentions: S, Usa2020P2.Beam, Usa2020P2.Supp, h
- def
Usa2020P2.zFullLayerk(in thez-direction) is completely filled line 340 sourceSource documentation
Layer
k(in thez-direction) is completely filled.standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat,Finset, Usa2020P2.Beam,FinProof uses:
Or,Membership.mem,Usa2020P2.Beam.xBeam,Usa2020P2.Beam.yBeam2 instances, coercions and auxiliary constants left out.
def zFull (S : Finset (Beam n)) (k : Fin n) : Prop := …
Mentions: S, Usa2020P2.Beam
- def
Usa2020P2.xFullLayeri(in thex-direction) is completely filled line 344 sourceSource documentation
Layer
i(in thex-direction) is completely filled.standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat,Finset, Usa2020P2.Beam,FinProof uses:
Or,Membership.mem,Usa2020P2.Beam.yBeam,Usa2020P2.Beam.zBeam2 instances, coercions and auxiliary constants left out.
def xFull (S : Finset (Beam n)) (i : Fin n) : Prop := …
Mentions: S, Usa2020P2.Beam
- def
Usa2020P2.yFullLayerj(in they-direction) is completely filled line 348 sourceSource documentation
Layer
j(in they-direction) is completely filled.standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat,Finset, Usa2020P2.Beam,FinProof uses:
Or,Membership.mem,Usa2020P2.Beam.xBeam,Usa2020P2.Beam.zBeam2 instances, coercions and auxiliary constants left out.
def yFull (S : Finset (Beam n)) (j : Fin n) : Prop := …
Mentions: S, Usa2020P2.Beam
- theorem
Usa2020P2.zFull_of_memline 351 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat,Finset, Usa2020P2.Beam, Usa2020P2.Supp,Fin,Not,Membership.mem,Usa2020P2.Beam.zBeam, Usa2020P2.zFull, Usa2020P2.zLayerProof uses:
Eq,Usa2020P2.Beam.xBeam,Or.inl,Usa2020P2.Beam.yBeam, Usa2020P2.fill_xBeam_y,Eq.symm,Or.inr, Usa2020P2.fill_yBeam_x,absurd,Eq.refl6 instances, coercions and auxiliary constants left out.
Tactic trace: 4 steps
Open to load the checked before-and-after goal states.
- theorem
Usa2020P2.xFull_of_memline 358 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat,Finset, Usa2020P2.Beam, Usa2020P2.Supp,Fin,Not,Membership.mem,Usa2020P2.Beam.xBeam, Usa2020P2.xFull, Usa2020P2.xLayerProof uses:
Eq,absurd,Eq.symm,Usa2020P2.Beam.yBeam,Or.inl,Usa2020P2.Beam.zBeam, Usa2020P2.fill_yBeam_z,Or.inr, Usa2020P2.fill_zBeam_y,Eq.refl6 instances, coercions and auxiliary constants left out.
Tactic trace: 4 steps
Open to load the checked before-and-after goal states.
- theorem
Usa2020P2.yFull_of_memline 365 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat,Finset, Usa2020P2.Beam, Usa2020P2.Supp,Fin,Not,Membership.mem,Usa2020P2.Beam.yBeam, Usa2020P2.yFull, Usa2020P2.yLayerProof uses:
Eq,Usa2020P2.Beam.xBeam,Or.inl,Usa2020P2.Beam.zBeam, Usa2020P2.fill_xBeam_z,Eq.symm,absurd,Or.inr, Usa2020P2.fill_zBeam_x,Eq.refl6 instances, coercions and auxiliary constants left out.
Tactic trace: 4 steps
Open to load the checked before-and-after goal states.
- theorem
Usa2020P2.zFull_stepline 372 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat,LT.lt,OfNat.ofNat,Finset, Usa2020P2.Beam, Usa2020P2.Supp,Fin,Not,Membership.mem,Usa2020P2.Beam.zBeam, Usa2020P2.zFull,And,Or,Eq,Exists,HAdd.hAddProof uses:
Usa2020P2.Beam.xBeam,Fin.mk,Usa2020P2.Beam.yBeam, Usa2020P2.xSupp,And.left, Usa2020P2.ySupp, Usa2020P2.zSupp,And.intro,Or.inl,Or.inr,Exists.intro, Usa2020P2.fill_xBeam_y, Usa2020P2.fill_yBeam_x,And.right17 instances, coercions and auxiliary constants left out.
Tactic trace: 39 steps
Open to load the checked before-and-after goal states.
- theorem
Usa2020P2.xFull_stepline 398 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat,LT.lt,OfNat.ofNat,Finset, Usa2020P2.Beam, Usa2020P2.Supp,Fin,Not,Membership.mem,Usa2020P2.Beam.xBeam, Usa2020P2.xFull,And,Or,Eq,Exists,HAdd.hAddProof uses:
Usa2020P2.Beam.yBeam,Fin.mk,Usa2020P2.Beam.zBeam, Usa2020P2.ySupp,And.left, Usa2020P2.zSupp,And.right, Usa2020P2.xSupp,And.intro,Or.inl,Or.inr,Exists.intro, Usa2020P2.fill_yBeam_z, Usa2020P2.fill_zBeam_y17 instances, coercions and auxiliary constants left out.
Tactic trace: 39 steps
Open to load the checked before-and-after goal states.
- theorem
Usa2020P2.yFull_stepline 424 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat,LT.lt,OfNat.ofNat,Finset, Usa2020P2.Beam, Usa2020P2.Supp,Fin,Not,Membership.mem,Usa2020P2.Beam.yBeam, Usa2020P2.yFull,And,Or,Eq,Exists,HAdd.hAddProof uses:
Usa2020P2.Beam.xBeam,Fin.mk,Usa2020P2.Beam.zBeam, Usa2020P2.xSupp,And.left, Usa2020P2.ySupp, Usa2020P2.zSupp,And.intro,Or.inl,Or.inr,Exists.intro, Usa2020P2.fill_xBeam_z, Usa2020P2.fill_zBeam_x,And.right17 instances, coercions and auxiliary constants left out.
Tactic trace: 39 steps
Open to load the checked before-and-after goal states.
- theorem
Usa2020P2.zFull_allline 450 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat,LT.lt,OfNat.ofNat,Finset, Usa2020P2.Beam, Usa2020P2.Supp,Fin,Not,Membership.mem,Usa2020P2.Beam.zBeam,Finset.Nonempty, Usa2020P2.zFullProof uses: Usa2020P2.fill1d, Usa2020P2.zFull_step, Usa2020P2.zLayer, Usa2020P2.zFull_of_mem
9 instances, coercions and auxiliary constants left out.
Tactic trace: 2 steps
Open to load the checked before-and-after goal states.
- theorem
Usa2020P2.xFull_allline 456 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat,LT.lt,OfNat.ofNat,Finset, Usa2020P2.Beam, Usa2020P2.Supp,Fin,Not,Membership.mem,Usa2020P2.Beam.xBeam,Finset.Nonempty, Usa2020P2.xFullProof uses: Usa2020P2.fill1d, Usa2020P2.xFull_step, Usa2020P2.xLayer, Usa2020P2.xFull_of_mem
9 instances, coercions and auxiliary constants left out.
Tactic trace: 2 steps
Open to load the checked before-and-after goal states.
- theorem
Usa2020P2.yFull_allline 462 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat,LT.lt,OfNat.ofNat,Finset, Usa2020P2.Beam, Usa2020P2.Supp,Fin,Not,Membership.mem,Usa2020P2.Beam.yBeam,Finset.Nonempty, Usa2020P2.yFullProof uses: Usa2020P2.fill1d, Usa2020P2.yFull_step, Usa2020P2.yLayer, Usa2020P2.yFull_of_mem
9 instances, coercions and auxiliary constants left out.
Tactic trace: 2 steps
Open to load the checked before-and-after goal states.
- theorem
Usa2020P2.card_zLayerline 468 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat,LT.lt,OfNat.ofNat,Finset, Usa2020P2.Beam,Fin,Not,Membership.mem,Usa2020P2.Beam.zBeam, Usa2020P2.zFull,LE.le,Finset.card,Finset.filter,Eq, Usa2020P2.zLayerProof uses:
dite,Usa2020P2.Beam.xBeam,Finset.image,Finset.univ,And,Exists,Eq.mp,congrArg,propext,Finset.mem_image,Eq.mpr,id,Finset.mem_filter,And.intro,rfl,Trans.trans,Finset.card_image_of_injOn,Set,And.left,Usa2020P2.Beam.xBeam.injand 10 more26 instances, coercions and auxiliary constants left out.
Tactic trace: 27 steps
Open to load the checked before-and-after goal states.
- theorem
Usa2020P2.card_xLayerline 499 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat,LT.lt,OfNat.ofNat,Finset, Usa2020P2.Beam,Fin,Not,Membership.mem,Usa2020P2.Beam.xBeam, Usa2020P2.xFull,LE.le,Finset.card,Finset.filter,Eq, Usa2020P2.xLayerProof uses:
dite,Usa2020P2.Beam.yBeam,Finset.image,Finset.univ,And,Exists,Eq.mp,congrArg,propext,Finset.mem_image,Eq.mpr,id,Finset.mem_filter,And.intro,rfl,Trans.trans,Finset.card_image_of_injOn,Set,And.right,Usa2020P2.Beam.yBeam.injand 10 more26 instances, coercions and auxiliary constants left out.
Tactic trace: 27 steps
Open to load the checked before-and-after goal states.
- theorem
Usa2020P2.card_yLayerline 530 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat,LT.lt,OfNat.ofNat,Finset, Usa2020P2.Beam,Fin,Not,Membership.mem,Usa2020P2.Beam.yBeam, Usa2020P2.yFull,LE.le,Finset.card,Finset.filter,Eq, Usa2020P2.yLayerProof uses:
dite,Usa2020P2.Beam.xBeam,Finset.image,Finset.univ,And,Exists,Eq.mp,congrArg,propext,Finset.mem_image,Eq.mpr,id,Finset.mem_filter,And.intro,rfl,Trans.trans,Finset.card_image_of_injOn,Set,And.right,Usa2020P2.Beam.xBeam.injand 11 more26 instances, coercions and auxiliary constants left out.
Tactic trace: 27 steps
Open to load the checked before-and-after goal states.
- theorem
Usa2020P2.card_ge_sq_of_no_zBeamIf there are nozBeams, every layer is filled andn² ≤ S.cardline 562 sourceSource documentation
If there are no
zBeams, every layer is filled andn² ≤ S.card.standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat,LT.lt,OfNat.ofNat,Finset, Usa2020P2.Beam, Usa2020P2.Supp,Fin,Not,Membership.mem,Usa2020P2.Beam.zBeam,Finset.Nonempty,LE.le,HMul.hMul,Finset.cardProof uses: Usa2020P2.zFull, Usa2020P2.zFull_all,
Eq.mpr,Finset.sum,Finset.univ,Finset.filter,Eq, Usa2020P2.zLayer,id,congrArg,Finset.card_eq_sum_card_fiberwise,Set,Finset.mem_univ,of_eq_true,Eq.trans,True,congrFun',HSMul.hSMul,Finset.sum_const,Fintype.card_finand 4 more26 instances, coercions and auxiliary constants left out.
Tactic trace: 6 steps
Open to load the checked before-and-after goal states.
theorem card_ge_sq_of_no_zBeam {n : ℕ} (hn : 0 < n) {S : Finset (Beam n)} (hS : Supp S) (hz : ∀ i j, zBeam i j ∉ S) (hne : S.Nonempty) : n * n ≤ S.card := by …Mentions: S, Usa2020P2.Beam, Usa2020P2.Supp
- theorem
Usa2020P2.card_ge_sq_of_no_xBeamIf there are noxBeams, every layer is filled andn² ≤ S.cardline 573 sourceSource documentation
If there are no
xBeams, every layer is filled andn² ≤ S.card.standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat,LT.lt,OfNat.ofNat,Finset, Usa2020P2.Beam, Usa2020P2.Supp,Fin,Not,Membership.mem,Usa2020P2.Beam.xBeam,Finset.Nonempty,LE.le,HMul.hMul,Finset.cardProof uses: Usa2020P2.xFull, Usa2020P2.xFull_all,
Eq.mpr,Finset.sum,Finset.univ,Finset.filter,Eq, Usa2020P2.xLayer,id,congrArg,Finset.card_eq_sum_card_fiberwise,Set,Finset.mem_univ,of_eq_true,Eq.trans,True,congrFun',HSMul.hSMul,Finset.sum_const,Fintype.card_finand 4 more26 instances, coercions and auxiliary constants left out.
Tactic trace: 6 steps
Open to load the checked before-and-after goal states.
theorem card_ge_sq_of_no_xBeam {n : ℕ} (hn : 0 < n) {S : Finset (Beam n)} (hS : Supp S) (hx : ∀ j k, xBeam j k ∉ S) (hne : S.Nonempty) : n * n ≤ S.card := by …Mentions: S, Usa2020P2.Beam, Usa2020P2.Supp
- theorem
Usa2020P2.card_ge_sq_of_no_yBeamIf there are noyBeams, every layer is filled andn² ≤ S.cardline 584 sourceSource documentation
If there are no
yBeams, every layer is filled andn² ≤ S.card.standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat,LT.lt,OfNat.ofNat,Finset, Usa2020P2.Beam, Usa2020P2.Supp,Fin,Not,Membership.mem,Usa2020P2.Beam.yBeam,Finset.Nonempty,LE.le,HMul.hMul,Finset.cardProof uses: Usa2020P2.yFull, Usa2020P2.yFull_all,
Eq.mpr,Finset.sum,Finset.univ,Finset.filter,Eq, Usa2020P2.yLayer,id,congrArg,Finset.card_eq_sum_card_fiberwise,Set,Finset.mem_univ,of_eq_true,Eq.trans,True,congrFun',HSMul.hSMul,Finset.sum_const,Fintype.card_finand 4 more26 instances, coercions and auxiliary constants left out.
Tactic trace: 6 steps
Open to load the checked before-and-after goal states.
theorem card_ge_sq_of_no_yBeam {n : ℕ} (hn : 0 < n) {S : Finset (Beam n)} (hS : Supp S) (hy : ∀ i k, yBeam i k ∉ S) (hne : S.Nonempty) : n * n ≤ S.card := by …Mentions: S, Usa2020P2.Beam, Usa2020P2.Supp
- theorem
Usa2020P2.card_filter_ne_zline 594 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat,Finset, Usa2020P2.Beam,Eq,Finset.card,Finset.filter,Ne, Usa2020P2.Dir, Usa2020P2.Beam.dir,Usa2020P2.Dir.Z,HAdd.hAdd,Usa2020P2.Dir.X,Usa2020P2.Dir.YProof uses:
Disjoint,Eq.mpr,Membership.mem,Not,id,congrArg,propext,Finset.disjoint_left,absurd,False,And.right,Eq.mp,And,Finset.mem_filter,of_decide_eq_true,Bool,Decidable.decide,Bool.true,Eq.refl,Union.unionand 22 more17 instances, coercions and auxiliary constants left out.
Tactic trace: 14 steps
Open to load the checked before-and-after goal states.
- theorem
Usa2020P2.card_filter_ne_xline 610 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat,Finset, Usa2020P2.Beam,Eq,Finset.card,Finset.filter,Ne, Usa2020P2.Dir, Usa2020P2.Beam.dir,Usa2020P2.Dir.X,HAdd.hAdd,Usa2020P2.Dir.Y,Usa2020P2.Dir.ZProof uses:
Disjoint,Eq.mpr,Membership.mem,Not,id,congrArg,propext,Finset.disjoint_left,absurd,False,And.right,Eq.mp,And,Finset.mem_filter,of_decide_eq_true,Bool,Decidable.decide,Bool.true,Eq.refl,Union.unionand 22 more17 instances, coercions and auxiliary constants left out.
Tactic trace: 14 steps
Open to load the checked before-and-after goal states.
- theorem
Usa2020P2.card_filter_ne_yline 626 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat,Finset, Usa2020P2.Beam,Eq,Finset.card,Finset.filter,Ne, Usa2020P2.Dir, Usa2020P2.Beam.dir,Usa2020P2.Dir.Y,HAdd.hAdd,Usa2020P2.Dir.Z,Usa2020P2.Dir.XProof uses:
Disjoint,Eq.mpr,Membership.mem,Not,id,congrArg,propext,Finset.disjoint_left,absurd,False,And.right,Eq.mp,And,Finset.mem_filter,of_decide_eq_true,Bool,Decidable.decide,Bool.true,Eq.refl,Union.unionand 22 more17 instances, coercions and auxiliary constants left out.
Tactic trace: 14 steps
Open to load the checked before-and-after goal states.
- theorem
Usa2020P2.n_le_of_mem_nonZIf some beam is not azBeam, everyz-layer contains anxBeamor ayBeam, hencen ≤ Nx + Nyline 644 sourceSource documentation
If some beam is not a
zBeam, everyz-layer contains anxBeamor ayBeam, hencen ≤ Nx + Ny.standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat,LT.lt,OfNat.ofNat,Finset, Usa2020P2.Beam, Usa2020P2.Supp,Exists,And,Membership.mem,Ne, Usa2020P2.Dir, Usa2020P2.Beam.dir,Usa2020P2.Dir.Z,LE.le,HAdd.hAdd,Finset.card,Finset.filter,Eq,Usa2020P2.Dir.X,Usa2020P2.Dir.YProof uses:
Fin, Usa2020P2.zLayer,Or,Usa2020P2.Beam.xBeam,id,Usa2020P2.Beam.zBeam,Usa2020P2.Beam.yBeam, Usa2020P2.xSupp,And.left, Usa2020P2.ySupp, Usa2020P2.zSupp,And.intro,Or.inl,Or.inr,Exists.intro,of_eq_true,Not,Eq.trans,False,Trueand 33 more38 instances, coercions and auxiliary constants left out.
Tactic trace: 65 steps
Open to load the checked before-and-after goal states.
theorem n_le_of_mem_nonZ {n : ℕ} (_hn : 0 < n) {S : Finset (Beam n)} (hS : Supp S) (hxy : ∃ b ∈ S, b.dir ≠ .Z) : n ≤ (S.filter fun b => b.dir = .X).card + (S.filter fun b => b.dir = .Y).card := by …Mentions: S, Usa2020P2.Beam, Usa2020P2.Supp
- theorem
Usa2020P2.n_le_of_mem_nonXIf some beam is not anxBeam, everyx-layer contains ayBeamor azBeam, hencen ≤ Ny + Nzline 698 sourceSource documentation
If some beam is not an
xBeam, everyx-layer contains ayBeamor azBeam, hencen ≤ Ny + Nz.standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat,LT.lt,OfNat.ofNat,Finset, Usa2020P2.Beam, Usa2020P2.Supp,Exists,And,Membership.mem,Ne, Usa2020P2.Dir, Usa2020P2.Beam.dir,Usa2020P2.Dir.X,LE.le,HAdd.hAdd,Finset.card,Finset.filter,Eq,Usa2020P2.Dir.Y,Usa2020P2.Dir.ZProof uses:
Fin, Usa2020P2.xLayer,Or,Usa2020P2.Beam.xBeam,absurd,rfl,Eq.symm,Usa2020P2.Beam.yBeam,id,Usa2020P2.Beam.zBeam, Usa2020P2.ySupp,And.left, Usa2020P2.zSupp,And.right, Usa2020P2.xSupp,And.intro,Or.inl,Or.inr,Exists.intro,of_eq_trueand 33 more38 instances, coercions and auxiliary constants left out.
Tactic trace: 65 steps
Open to load the checked before-and-after goal states.
theorem n_le_of_mem_nonX {n : ℕ} (_hn : 0 < n) {S : Finset (Beam n)} (hS : Supp S) (hxy : ∃ b ∈ S, b.dir ≠ .X) : n ≤ (S.filter fun b => b.dir = .Y).card + (S.filter fun b => b.dir = .Z).card := by …Mentions: S, Usa2020P2.Beam, Usa2020P2.Supp
- theorem
Usa2020P2.n_le_of_mem_nonYIf some beam is not ayBeam, everyy-layer contains azBeamor anxBeam, hencen ≤ Nz + Nxline 752 sourceSource documentation
If some beam is not a
yBeam, everyy-layer contains azBeamor anxBeam, hencen ≤ Nz + Nx.standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat,LT.lt,OfNat.ofNat,Finset, Usa2020P2.Beam, Usa2020P2.Supp,Exists,And,Membership.mem,Ne, Usa2020P2.Dir, Usa2020P2.Beam.dir,Usa2020P2.Dir.Y,LE.le,HAdd.hAdd,Finset.card,Finset.filter,Eq,Usa2020P2.Dir.Z,Usa2020P2.Dir.XProof uses:
Fin, Usa2020P2.yLayer,Or,Usa2020P2.Beam.xBeam,id,Usa2020P2.Beam.zBeam,Usa2020P2.Beam.yBeam, Usa2020P2.xSupp,And.left, Usa2020P2.ySupp, Usa2020P2.zSupp,And.intro,Or.inl,Or.inr,Exists.intro,of_eq_true,Not,Eq.trans,False,Trueand 33 more38 instances, coercions and auxiliary constants left out.
Tactic trace: 65 steps
Open to load the checked before-and-after goal states.
theorem n_le_of_mem_nonY {n : ℕ} (_hn : 0 < n) {S : Finset (Beam n)} (hS : Supp S) (hxy : ∃ b ∈ S, b.dir ≠ .Y) : n ≤ (S.filter fun b => b.dir = .Z).card + (S.filter fun b => b.dir = .X).card := by …Mentions: S, Usa2020P2.Beam, Usa2020P2.Supp
- theorem
Usa2020P2.card_eq_sum_dirsline 804 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat,Finset, Usa2020P2.Beam,Eq,Finset.card,HAdd.hAdd,Finset.filter, Usa2020P2.Dir, Usa2020P2.Beam.dir,Usa2020P2.Dir.X,Usa2020P2.Dir.Y,Usa2020P2.Dir.ZProof uses:
Disjoint,Eq.mpr,Membership.mem,Not,id,congrArg,propext,Finset.disjoint_left,absurd,False,And.right,Eq.mp,And,Finset.mem_filter,of_decide_eq_true,Bool,Decidable.decide,Bool.true,Eq.refl,Union.unionand 19 more19 instances, coercions and auxiliary constants left out.
Tactic trace: 25 steps
Open to load the checked before-and-after goal states.
- theorem
Usa2020P2.lower_boundThe lower bound: any supported nonempty configuration has3 * n ≤ 2 * S.cardline 834 sourceSource documentation
The lower bound: any supported nonempty configuration has
3 * n ≤ 2 * S.card.standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat,LE.le,OfNat.ofNat,Finset, Usa2020P2.Beam, Usa2020P2.Supp,Finset.Nonempty,HMul.hMul,Finset.cardProof uses:
LT.lt,Nat.mul_le_mul,le_rfl,le_of_not_gt,Mathlib.Tactic.Linarith.lt_irrefl,Int,Eq.mp,HAdd.hAdd,Neg.neg,HSub.hSub,congrArg,Mathlib.Tactic.Ring.of_eq,Mathlib.Tactic.Ring.Common.add_congr,Int.rawCast,inferInstance,Ring,Int.negOfNat,HPow.hPow,Nat.rawCast,Mathlib.Meta.NormNum.instAddMonoidWithOneand 93 more88 instances, coercions and auxiliary constants left out.
Tactic trace: 34 steps
Open to load the checked before-and-after goal states.
theorem lower_bound {n : ℕ} (hn : 2 ≤ n) {S : Finset (Beam n)} (hS : Supp S) (hne : S.Nonempty) : 3 * n ≤ 2 * S.card := by …Mentions: S, Usa2020P2.Beam, Usa2020P2.Supp
- def
Usa2020P2.zPartThezBeams of the construction:(2t, 2t)fort = 0, …, 1009line 864 sourceSource documentation
The
zBeams of the construction:(2t, 2t)fort = 0, …, 1009.standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Finset, Usa2020P2.Beam,OfNat.ofNat,NatProof uses:
Finset.image,Subtype,Membership.mem,Finset.range,Usa2020P2.Beam.zBeam,Fin.mk,HMul.hMul,Finset.attach9 instances, coercions and auxiliary constants left out.
Tactic trace: 4 steps
Open to load the checked before-and-after goal states.
def zPart : Finset (Beam 2020) := …
Mentions: Usa2020P2.Beam
- def
Usa2020P2.yPartTheyBeams of the construction:(2t+1, 2t)fort = 0, …, 1009line 870 sourceSource documentation
The
yBeams of the construction:(2t+1, 2t)fort = 0, …, 1009.standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Finset, Usa2020P2.Beam,OfNat.ofNat,NatProof uses:
Finset.image,Subtype,Membership.mem,Finset.range,Usa2020P2.Beam.yBeam,Fin.mk,HAdd.hAdd,HMul.hMul,Finset.attach12 instances, coercions and auxiliary constants left out.
Tactic trace: 4 steps
Open to load the checked before-and-after goal states.
def yPart : Finset (Beam 2020) := …
Mentions: Usa2020P2.Beam
- def
Usa2020P2.xPartThexBeams of the construction:(2t+1, 2t+1)fort = 0, …, 1009line 876 sourceSource documentation
The
xBeams of the construction:(2t+1, 2t+1)fort = 0, …, 1009.standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Finset, Usa2020P2.Beam,OfNat.ofNat,NatProof uses:
Finset.image,Subtype,Membership.mem,Finset.range,Usa2020P2.Beam.xBeam,Fin.mk,HAdd.hAdd,HMul.hMul,Finset.attach11 instances, coercions and auxiliary constants left out.
Tactic trace: 4 steps
Open to load the checked before-and-after goal states.
def xPart : Finset (Beam 2020) := …
Mentions: Usa2020P2.Beam
- def
Usa2020P2.halfBeamsThe construction: 3030 beams forming a staircase line 882 sourceSource documentation
The construction: 3030 beams forming a staircase.
standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Finset, Usa2020P2.Beam,OfNat.ofNat,NatProof uses:
Union.union, Usa2020P2.zPart, Usa2020P2.yPart, Usa2020P2.xPart4 instances, coercions and auxiliary constants left out.
def halfBeams : Finset (Beam 2020) := zPart ∪ yPart ∪ xPart
Mentions: Usa2020P2.Beam, Usa2020P2.zPart, Usa2020P2.yPart, Usa2020P2.xPart
- theorem
Usa2020P2.mem_zPartline 886 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat,LT.lt,OfNat.ofNat,Membership.mem, Usa2020P2.Beam,Finset, Usa2020P2.zPart,Usa2020P2.Beam.zBeam,Fin.mk,HMul.hMulProof uses:
Eq.mpr,Finset.image,Subtype,Finset.range,Finset.attach,id,Eq,congrArg,Usa2020P2.zPart.eq_1,Exists,And,propext,Finset.mem_image,Exists.intro,Subtype.mk,Iff.mpr,Finset.mem_range,And.intro,of_eq_true,rfl18 instances, coercions and auxiliary constants left out.
Tactic trace: 5 steps
Open to load the checked before-and-after goal states.
- theorem
Usa2020P2.mem_yPartline 891 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat,LT.lt,OfNat.ofNat,Membership.mem, Usa2020P2.Beam,Finset, Usa2020P2.yPart,Usa2020P2.Beam.yBeam,Fin.mk,HAdd.hAdd,HMul.hMulProof uses:
Eq.mpr,Finset.image,Subtype,Finset.range,Finset.attach,id,Eq,congrArg,Usa2020P2.yPart.eq_1,Exists,And,propext,Finset.mem_image,Exists.intro,Subtype.mk,Iff.mpr,Finset.mem_range,And.intro,of_eq_true,rfl25 instances, coercions and auxiliary constants left out.
Tactic trace: 5 steps
Open to load the checked before-and-after goal states.
- theorem
Usa2020P2.mem_xPartline 896 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat,LT.lt,OfNat.ofNat,Membership.mem, Usa2020P2.Beam,Finset, Usa2020P2.xPart,Usa2020P2.Beam.xBeam,Fin.mk,HAdd.hAdd,HMul.hMulProof uses:
Eq.mpr,Finset.image,Subtype,Finset.range,Finset.attach,id,Eq,congrArg,Usa2020P2.xPart.eq_1,Exists,And,propext,Finset.mem_image,Exists.intro,Subtype.mk,Iff.mpr,Finset.mem_range,And.intro,of_eq_true,rfl22 instances, coercions and auxiliary constants left out.
Tactic trace: 5 steps
Open to load the checked before-and-after goal states.
- theorem
Usa2020P2.mem_halfBeams_zline 901 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat,LT.lt,OfNat.ofNat,Membership.mem, Usa2020P2.Beam,Finset, Usa2020P2.halfBeams,Usa2020P2.Beam.zBeam,Fin.mk,HMul.hMulProof uses:
Eq.mpr,Union.union, Usa2020P2.zPart, Usa2020P2.yPart, Usa2020P2.xPart,id,Eq,congrArg,Usa2020P2.halfBeams.eq_1,Finset.mem_union_left, Usa2020P2.mem_zPart16 instances, coercions and auxiliary constants left out.
Tactic trace: 6 steps
Open to load the checked before-and-after goal states.
- theorem
Usa2020P2.mem_halfBeams_yline 908 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat,LT.lt,OfNat.ofNat,Membership.mem, Usa2020P2.Beam,Finset, Usa2020P2.halfBeams,Usa2020P2.Beam.yBeam,Fin.mk,HAdd.hAdd,HMul.hMulProof uses:
Eq.mpr,Union.union, Usa2020P2.zPart, Usa2020P2.yPart, Usa2020P2.xPart,id,Eq,congrArg,Usa2020P2.halfBeams.eq_1,Finset.mem_union_left,Finset.mem_union_right, Usa2020P2.mem_yPart22 instances, coercions and auxiliary constants left out.
Tactic trace: 6 steps
Open to load the checked before-and-after goal states.
- theorem
Usa2020P2.mem_halfBeams_xline 915 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Nat,LT.lt,OfNat.ofNat,Membership.mem, Usa2020P2.Beam,Finset, Usa2020P2.halfBeams,Usa2020P2.Beam.xBeam,Fin.mk,HAdd.hAdd,HMul.hMulProof uses:
Eq.mpr,Union.union, Usa2020P2.zPart, Usa2020P2.yPart, Usa2020P2.xPart,id,Eq,congrArg,Usa2020P2.halfBeams.eq_1,Finset.mem_union_right, Usa2020P2.mem_xPart20 instances, coercions and auxiliary constants left out.
Tactic trace: 5 steps
Open to load the checked before-and-after goal states.
- theorem
Usa2020P2.of_mem_halfBeams_zline 921 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Fin,OfNat.ofNat,Nat,Membership.mem, Usa2020P2.Beam,Finset, Usa2020P2.halfBeams,Usa2020P2.Beam.zBeam,Exists,And,LT.lt,Eq,HMul.hMulProof uses:
Or, Usa2020P2.zPart, Usa2020P2.yPart, Usa2020P2.xPart,Eq.mp,Union.union,congrArg,propext,Finset.mem_union,Usa2020P2.halfBeams.eq_1,Subtype,Finset.range,Finset.attach,Fin.mk,Finset.image,Finset.mem_image,Usa2020P2.zPart.eq_1,HEq,Exists.intro,And.introand 15 more26 instances, coercions and auxiliary constants left out.
Tactic trace: 15 steps
Open to load the checked before-and-after goal states.
- theorem
Usa2020P2.of_mem_halfBeams_yline 937 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Fin,OfNat.ofNat,Nat,Membership.mem, Usa2020P2.Beam,Finset, Usa2020P2.halfBeams,Usa2020P2.Beam.yBeam,Exists,And,LT.lt,Eq,HAdd.hAdd,HMul.hMulProof uses:
Or, Usa2020P2.zPart, Usa2020P2.yPart, Usa2020P2.xPart,Eq.mp,Union.union,congrArg,propext,Finset.mem_union,Usa2020P2.halfBeams.eq_1,Subtype,Finset.range,Finset.attach,Usa2020P2.Beam.zBeam,Fin.mk,Finset.image,Finset.mem_image,Usa2020P2.zPart.eq_1,HEq,False.elimand 14 more28 instances, coercions and auxiliary constants left out.
Tactic trace: 15 steps
Open to load the checked before-and-after goal states.
- theorem
Usa2020P2.of_mem_halfBeams_xline 953 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Fin,OfNat.ofNat,Nat,Membership.mem, Usa2020P2.Beam,Finset, Usa2020P2.halfBeams,Usa2020P2.Beam.xBeam,Exists,And,LT.lt,Eq,HAdd.hAdd,HMul.hMulProof uses:
Or, Usa2020P2.zPart, Usa2020P2.yPart, Usa2020P2.xPart,Eq.mp,Union.union,congrArg,propext,Finset.mem_union,Usa2020P2.halfBeams.eq_1,Subtype,Finset.range,Finset.attach,Usa2020P2.Beam.zBeam,Fin.mk,Finset.image,Finset.mem_image,Usa2020P2.zPart.eq_1,HEq,False.elimand 14 more28 instances, coercions and auxiliary constants left out.
Tactic trace: 15 steps
Open to load the checked before-and-after goal states.
- theorem
Usa2020P2.zPart_cardline 971 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Eq,Nat,Finset.card, Usa2020P2.Beam,OfNat.ofNat, Usa2020P2.zPartProof uses:
Eq.mpr,Finset.image,Subtype,Membership.mem,Finset,Finset.range,Usa2020P2.Beam.zBeam,Fin.mk,HMul.hMul,Finset.attach,id,congrArg,Usa2020P2.zPart.eq_1,Finset.card_image_of_injOn,Set,HEq,Fin,eq_of_heq,Subtype.ext,Finset.card_attachand 2 more14 instances, coercions and auxiliary constants left out.
Tactic trace: 6 steps
Open to load the checked before-and-after goal states.
- theorem
Usa2020P2.yPart_cardline 978 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Eq,Nat,Finset.card, Usa2020P2.Beam,OfNat.ofNat, Usa2020P2.yPartProof uses:
Eq.mpr,Finset.image,Subtype,Membership.mem,Finset,Finset.range,Usa2020P2.Beam.yBeam,Fin.mk,HAdd.hAdd,HMul.hMul,Finset.attach,id,congrArg,Usa2020P2.yPart.eq_1,Finset.card_image_of_injOn,Set,HEq,Fin,eq_of_heq,Subtype.extand 3 more17 instances, coercions and auxiliary constants left out.
Tactic trace: 6 steps
Open to load the checked before-and-after goal states.
- theorem
Usa2020P2.xPart_cardline 985 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Eq,Nat,Finset.card, Usa2020P2.Beam,OfNat.ofNat, Usa2020P2.xPartProof uses:
Eq.mpr,Finset.image,Subtype,Membership.mem,Finset,Finset.range,Usa2020P2.Beam.xBeam,Fin.mk,HAdd.hAdd,HMul.hMul,Finset.attach,id,congrArg,Usa2020P2.xPart.eq_1,Finset.card_image_of_injOn,Set,HEq,Fin,eq_of_heq,Subtype.extand 3 more16 instances, coercions and auxiliary constants left out.
Tactic trace: 6 steps
Open to load the checked before-and-after goal states.
- theorem
Usa2020P2.halfBeams_cardline 992 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Eq,Nat,Finset.card, Usa2020P2.Beam,OfNat.ofNat, Usa2020P2.halfBeamsProof uses:
Disjoint,Finset, Usa2020P2.zPart, Usa2020P2.yPart,Eq.mpr,Membership.mem,Not,id,congrArg,propext,Finset.disjoint_left,Subtype,Finset.range,And,Finset.attach,Usa2020P2.Beam.zBeam,Fin.mk,HMul.hMul,Exists,Falseand 25 more19 instances, coercions and auxiliary constants left out.
Tactic trace: 26 steps
Open to load the checked before-and-after goal states.
- theorem
Usa2020P2.halfBeams_nonemptyline 1021 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Finset.Nonempty, Usa2020P2.Beam,OfNat.ofNat,Nat, Usa2020P2.halfBeamsProof uses:
Eq.mpr,LT.lt,Finset.card,id,Eq,congrArg,Eq.symm,propext,Finset.card_pos, Usa2020P2.halfBeams_card,Mathlib.Meta.NormNum.isNat_lt_true,Mathlib.Meta.NormNum.isNat_ofNat,Eq.refl,Bool,Bool.false11 instances, coercions and auxiliary constants left out.
Tactic trace: 2 steps
Open to load the checked before-and-after goal states.
- theorem
Usa2020P2.halfBeams_disjointline 1027 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses: Usa2020P2.DisjointBeams,
OfNat.ofNat,Nat, Usa2020P2.halfBeamsProof uses: Usa2020P2.Beam,
Membership.mem,Finset,Exists,Fin,And, Usa2020P2.Beam.covers,Eq,Or, Usa2020P2.zPart, Usa2020P2.yPart, Usa2020P2.xPart,Eq.mp,Union.union,congrArg,propext,Finset.mem_union,Usa2020P2.halfBeams.eq_1,Subtype,Finset.rangeand 18 more27 instances, coercions and auxiliary constants left out.
Tactic trace: 88 steps
Open to load the checked before-and-after goal states.
- theorem
Usa2020P2.halfBeams_suppline 1115 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses: Usa2020P2.Supp,
OfNat.ofNat,Nat, Usa2020P2.halfBeamsProof uses:
And.intro,Fin,Membership.mem, Usa2020P2.Beam,Finset,Usa2020P2.Beam.xBeam, Usa2020P2.xSupp,And,Usa2020P2.Beam.yBeam, Usa2020P2.ySupp,Usa2020P2.Beam.zBeam, Usa2020P2.zSupp,LT.lt,Eq,HAdd.hAdd,HMul.hMul,Exists, Usa2020P2.of_mem_halfBeams_x,Or,Or.inrand 13 more30 instances, coercions and auxiliary constants left out.
Tactic trace: 127 steps
Open to load the checked before-and-after goal states.
- determine
Usa2020P2.solutionline 1186 sourceno axioms what this means
Statement uses:
NatProof uses:
OfNat.ofNat1 instances, coercions and auxiliary constants left out.
- problem
Usa2020P2.usa2020_p2line 1188 sourcestandard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
IsLeast,Nat,Set.ofPred,Exists,Finset, Usa2020P2.Beam,OfNat.ofNat,And,Finset.Nonempty, Usa2020P2.DisjointBeams, Usa2020P2.Supp,Eq,Finset.card, Usa2020P2.solutionProof uses:
And.intro,Membership.mem,Set,lowerBounds,Exists.intro, Usa2020P2.halfBeams, Usa2020P2.halfBeams_nonempty, Usa2020P2.halfBeams_disjoint, Usa2020P2.halfBeams_supp, Usa2020P2.halfBeams_card,LE.le,HMul.hMul, Usa2020P2.lower_bound,Mathlib.Meta.NormNum.isNat_le_true,Mathlib.Meta.NormNum.isNat_ofNat,Eq.refl,Bool,Bool.true,id,Eq.mprand 3 more17 instances, coercions and auxiliary constants left out.
Tactic trace: 12 steps
Open to load the checked before-and-after goal states.