Built with doc-gen4, running Lean4. Bubbles () indicate interactive fragments: hover for details, tap to reveal contents. Use Ctrl+↑Ctrl+↓to navigate, Ctrl+πŸ–±οΈto focus. On Mac, use Cmdinstead of Ctrl.
/-
Copyright (c) 2021 Anne Baanen. All rights reserved.
Released under Apache 2.0 license as described in the file LICENSE.
Authors: Anne Baanen

! This file was ported from Lean 3 source module number_theory.class_number.admissible_absolute_value
! leanprover-community/mathlib commit f7fc89d5d5ff1db2d1242c7bb0e9062ce47ef47c
! Please do not edit these lines, except to modify the commit id
! if you have ported upstream changes.
-/
import Mathlib.Data.Real.Basic
import Mathlib.Combinatorics.Pigeonhole
import Mathlib.Algebra.Order.EuclideanAbsoluteValue

/-!
# Admissible absolute values
This file defines a structure `AbsoluteValue.IsAdmissible` which we use to show the class number
of the ring of integers of a global field is finite.

## Main definitions

 * `AbsoluteValue.IsAdmissible abv` states the absolute value `abv : R β†’ β„€`
   respects the Euclidean domain structure on `R`, and that a large enough set
   of elements of `R^n` contains a pair of elements whose remainders are
   pointwise close together.

## Main results

 * `AbsoluteValue.absIsAdmissible` shows the "standard" absolute value on `β„€`,
   mapping negative `x` to `-x`, is admissible.
 * `Polynomial.cardPowDegreeIsAdmissible` shows `cardPowDegree`,
   mapping `p : Polynomial 𝔽_q` to `q ^ degree p`, is admissible
-/

local infixl:50 " β‰Ί " => 
EuclideanDomain.r: {R : Type u} β†’ [self : EuclideanDomain R] β†’ R β†’ R β†’ Prop
EuclideanDomain.r
namespace AbsoluteValue variable {
R: Type ?u.8588
R
:
Type _: Type (?u.20781+1)
Type _
} [
EuclideanDomain: Type ?u.8812 β†’ Type ?u.8812
EuclideanDomain
R: Type ?u.8582
R
] variable (abv :
AbsoluteValue: (R : Type ?u.8595) β†’ (S : Type ?u.8594) β†’ [inst : Semiring R] β†’ [inst : OrderedSemiring S] β†’ Type (max?u.8595?u.8594)
AbsoluteValue
R: Type ?u.8588
R
β„€: Type
β„€
) /-- An absolute value `R β†’ β„€` is admissible if it respects the Euclidean domain structure and a large enough set of elements in `R^n` will contain a pair of elements whose remainders are pointwise close together. -/ structure
IsAdmissible: {R : Type u_1} β†’ [inst : EuclideanDomain R] β†’ AbsoluteValue R β„€ β†’ Type
IsAdmissible
extends
IsEuclidean: {R : Type ?u.9033} β†’ {S : Type ?u.9032} β†’ [inst : EuclideanDomain R] β†’ [inst_1 : OrderedSemiring S] β†’ AbsoluteValue R S β†’ Prop
IsEuclidean
abv where protected
card: {R : Type u_1} β†’ [inst : EuclideanDomain R] β†’ {abv : AbsoluteValue R β„€} β†’ IsAdmissible abv β†’ ℝ β†’ β„•
card
:
ℝ: Type
ℝ
β†’
β„•: Type
β„•
/-- For all `Ξ΅ > 0` and finite families `A`, we can partition the remainders of `A` mod `b` into `abv.card Ξ΅` sets, such that all elements in each part of remainders are close together. -/
exists_partition': βˆ€ {R : Type u_1} [inst : EuclideanDomain R] {abv : AbsoluteValue R β„€} (self : IsAdmissible abv) (n : β„•) {Ξ΅ : ℝ}, 0 < Ξ΅ β†’ βˆ€ {b : R}, b β‰  0 β†’ βˆ€ (A : Fin n β†’ R), βˆƒ t, βˆ€ (iβ‚€ i₁ : Fin n), t iβ‚€ = t i₁ β†’ ↑(↑abv (A i₁ % b - A iβ‚€ % b)) < ↑abv b β€’ Ξ΅
exists_partition'
: βˆ€ (n :
β„•: Type
β„•
) {
Ξ΅: ℝ
Ξ΅
:
ℝ: Type
ℝ
} (
_: 0 < Ξ΅
_
:
0: ?m.9117
0
<
Ξ΅: ℝ
Ξ΅
) {
b: R
b
:
R: Type ?u.8809
R
} (
_: b β‰  0
_
:
b: R
b
β‰ 
0: ?m.9172
0
) (
A: Fin n β†’ R
A
:
Fin: β„• β†’ Type
Fin
n β†’
R: Type ?u.8809
R
), βˆƒ
t: Fin n β†’ Fin (card Ξ΅)
t
:
Fin: β„• β†’ Type
Fin
n β†’
Fin: β„• β†’ Type
Fin
(
card: ℝ β†’ β„•
card
Ξ΅: ℝ
Ξ΅
), βˆ€
iβ‚€: ?m.9396
iβ‚€
i₁: ?m.9399
i₁
,
t: Fin n β†’ Fin (card Ξ΅)
t
iβ‚€: ?m.9396
iβ‚€
=
t: Fin n β†’ Fin (card Ξ΅)
t
i₁: ?m.9399
i₁
β†’ (abv (
A: Fin n β†’ R
A
i₁: ?m.9399
i₁
%
b: R
b
-
A: Fin n β†’ R
A
iβ‚€: ?m.9396
iβ‚€
%
b: R
b
) :
ℝ: Type
ℝ
) < abv
b: R
b
β€’
Ξ΅: ℝ
Ξ΅
#align absolute_value.is_admissible
AbsoluteValue.IsAdmissible: {R : Type u_1} β†’ [inst : EuclideanDomain R] β†’ AbsoluteValue R β„€ β†’ Type
AbsoluteValue.IsAdmissible
-- Porting note: no docstrings for IsAdmissible attribute [nolint docBlame]
IsAdmissible.card: {R : Type u_1} β†’ [inst : EuclideanDomain R] β†’ {abv : AbsoluteValue R β„€} β†’ IsAdmissible abv β†’ ℝ β†’ β„•
IsAdmissible.card
namespace IsAdmissible variable {
abv: ?m.21002
abv
} /-- For all `Ξ΅ > 0` and finite families `A`, we can partition the remainders of `A` mod `b` into `abv.card Ξ΅` sets, such that all elements in each part of remainders are close together. -/ theorem
exists_partition: βˆ€ {ΞΉ : Type u_1} [inst : Fintype ΞΉ] {Ξ΅ : ℝ}, 0 < Ξ΅ β†’ βˆ€ {b : R}, b β‰  0 β†’ βˆ€ (A : ΞΉ β†’ R) (h : IsAdmissible abv), βˆƒ t, βˆ€ (iβ‚€ i₁ : ΞΉ), t iβ‚€ = t i₁ β†’ ↑(↑abv (A i₁ % b - A iβ‚€ % b)) < ↑abv b β€’ Ξ΅
exists_partition
{
ΞΉ: Type ?u.21226
ΞΉ
:
Type _: Type (?u.21226+1)
Type _
} [
Fintype: Type ?u.21229 β†’ Type ?u.21229
Fintype
ΞΉ: Type ?u.21226
ΞΉ
] {
Ξ΅: ℝ
Ξ΅
:
ℝ: Type
ℝ
} (
hΞ΅: 0 < Ξ΅
hΞ΅
:
0: ?m.21236
0
<
Ξ΅: ℝ
Ξ΅
) {
b: R
b
:
R: Type ?u.21005
R
} (
hb: b β‰  0
hb
:
b: R
b
β‰ 
0: ?m.21291
0
) (
A: ΞΉ β†’ R
A
:
ΞΉ: Type ?u.21226
ΞΉ
β†’
R: Type ?u.21005
R
) (h : abv.
IsAdmissible: {R : Type ?u.21511} β†’ [inst : EuclideanDomain R] β†’ AbsoluteValue R β„€ β†’ Type
IsAdmissible
) : βˆƒ
t: ΞΉ β†’ Fin (IsAdmissible.card h Ξ΅)
t
:
ΞΉ: Type ?u.21226
ΞΉ
β†’
Fin: β„• β†’ Type
Fin
(h.
card: {R : Type ?u.21534} β†’ [inst : EuclideanDomain R] β†’ {abv : AbsoluteValue R β„€} β†’ IsAdmissible abv β†’ ℝ β†’ β„•
card
Ξ΅: ℝ
Ξ΅
), βˆ€
iβ‚€: ?m.21544
iβ‚€
i₁: ?m.21547
i₁
,
t: ΞΉ β†’ Fin (IsAdmissible.card h Ξ΅)
t
iβ‚€: ?m.21544
iβ‚€
=
t: ΞΉ β†’ Fin (IsAdmissible.card h Ξ΅)
t
i₁: ?m.21547
i₁
β†’ (abv (
A: ΞΉ β†’ R
A
i₁: ?m.21547
i₁
%
b: R
b
-
A: ΞΉ β†’ R
A
iβ‚€: ?m.21544
iβ‚€
%
b: R
b
) :
ℝ: Type
ℝ
) < abv
b: R
b
β€’
Ξ΅: ℝ
Ξ΅
:=

Goals accomplished! πŸ™
R: Type u_2

inst✝¹: EuclideanDomain R

abv: AbsoluteValue R β„€

ΞΉ: Type u_1

inst✝: Fintype ι

Ξ΅: ℝ

hΞ΅: 0 < Ξ΅

b: R

hb: b β‰  0

A: ΞΉ β†’ R

h: IsAdmissible abv


βˆƒ t, βˆ€ (iβ‚€ i₁ : ΞΉ), t iβ‚€ = t i₁ β†’ ↑(↑abv (A i₁ % b - A iβ‚€ % b)) < ↑abv b β€’ Ξ΅
R: Type u_2

inst✝¹: EuclideanDomain R

abv: AbsoluteValue R β„€

ΞΉ: Type u_1

inst✝: Fintype ι

Ξ΅: ℝ

hΞ΅: 0 < Ξ΅

b: R

hb: b β‰  0

A: ΞΉ β†’ R

h: IsAdmissible abv

e:= Fintype.equivFin ΞΉ: ΞΉ ≃ Fin (Fintype.card ΞΉ)


βˆƒ t, βˆ€ (iβ‚€ i₁ : ΞΉ), t iβ‚€ = t i₁ β†’ ↑(↑abv (A i₁ % b - A iβ‚€ % b)) < ↑abv b β€’ Ξ΅
R: Type u_2

inst✝¹: EuclideanDomain R

abv: AbsoluteValue R β„€

ΞΉ: Type u_1

inst✝: Fintype ι

Ξ΅: ℝ

hΞ΅: 0 < Ξ΅

b: R

hb: b β‰  0

A: ΞΉ β†’ R

h: IsAdmissible abv


βˆƒ t, βˆ€ (iβ‚€ i₁ : ΞΉ), t iβ‚€ = t i₁ β†’ ↑(↑abv (A i₁ % b - A iβ‚€ % b)) < ↑abv b β€’ Ξ΅
R: Type u_2

inst✝¹: EuclideanDomain R

abv: AbsoluteValue R β„€

ΞΉ: Type u_1

inst✝: Fintype ι

Ξ΅: ℝ

hΞ΅: 0 < Ξ΅

b: R

hb: b β‰  0

A: ΞΉ β†’ R

h: IsAdmissible abv

e:= Fintype.equivFin ΞΉ: ΞΉ ≃ Fin (Fintype.card ΞΉ)

t: Fin (Fintype.card ΞΉ) β†’ Fin (IsAdmissible.card h Ξ΅)

ht: βˆ€ (iβ‚€ i₁ : Fin (Fintype.card ΞΉ)), t iβ‚€ = t i₁ β†’ ↑(↑abv ((A ∘ ↑e.symm) i₁ % b - (A ∘ ↑e.symm) iβ‚€ % b)) < ↑abv b β€’ Ξ΅


intro
βˆƒ t, βˆ€ (iβ‚€ i₁ : ΞΉ), t iβ‚€ = t i₁ β†’ ↑(↑abv (A i₁ % b - A iβ‚€ % b)) < ↑abv b β€’ Ξ΅
R: Type u_2

inst✝¹: EuclideanDomain R

abv: AbsoluteValue R β„€

ΞΉ: Type u_1

inst✝: Fintype ι

Ξ΅: ℝ

hΞ΅: 0 < Ξ΅

b: R

hb: b β‰  0

A: ΞΉ β†’ R

h: IsAdmissible abv


βˆƒ t, βˆ€ (iβ‚€ i₁ : ΞΉ), t iβ‚€ = t i₁ β†’ ↑(↑abv (A i₁ % b - A iβ‚€ % b)) < ↑abv b β€’ Ξ΅
R: Type u_2

inst✝¹: EuclideanDomain R

abv: AbsoluteValue R β„€

ΞΉ: Type u_1

inst✝: Fintype ι

Ξ΅: ℝ

hΞ΅: 0 < Ξ΅

b: R

hb: b β‰  0

A: ΞΉ β†’ R

h✝: IsAdmissible abv

e:= Fintype.equivFin ΞΉ: ΞΉ ≃ Fin (Fintype.card ΞΉ)

t: Fin (Fintype.card ΞΉ) β†’ Fin (IsAdmissible.card h✝ Ξ΅)

ht: βˆ€ (iβ‚€ i₁ : Fin (Fintype.card ΞΉ)), t iβ‚€ = t i₁ β†’ ↑(↑abv ((A ∘ ↑e.symm) i₁ % b - (A ∘ ↑e.symm) iβ‚€ % b)) < ↑abv b β€’ Ξ΅

iβ‚€, i₁: ΞΉ

h: (t ∘ ↑e) iβ‚€ = (t ∘ ↑e) i₁


intro
↑(↑abv (A i₁ % b - A iβ‚€ % b)) < ↑abv b β€’ Ξ΅
R: Type u_2

inst✝¹: EuclideanDomain R

abv: AbsoluteValue R β„€

ΞΉ: Type u_1

inst✝: Fintype ι

Ξ΅: ℝ

hΞ΅: 0 < Ξ΅

b: R

hb: b β‰  0

A: ΞΉ β†’ R

h: IsAdmissible abv


βˆƒ t, βˆ€ (iβ‚€ i₁ : ΞΉ), t iβ‚€ = t i₁ β†’ ↑(↑abv (A i₁ % b - A iβ‚€ % b)) < ↑abv b β€’ Ξ΅
R: Type u_2

inst✝¹: EuclideanDomain R

abv: AbsoluteValue R β„€

ΞΉ: Type u_1

inst✝: Fintype ι

Ξ΅: ℝ

hΞ΅: 0 < Ξ΅

b: R

hb: b β‰  0

A: ΞΉ β†’ R

h✝: IsAdmissible abv

e:= Fintype.equivFin ΞΉ: ΞΉ ≃ Fin (Fintype.card ΞΉ)

t: Fin (Fintype.card ΞΉ) β†’ Fin (IsAdmissible.card h✝ Ξ΅)

ht: βˆ€ (iβ‚€ i₁ : Fin (Fintype.card ΞΉ)), t iβ‚€ = t i₁ β†’ ↑(↑abv ((A ∘ ↑e.symm) i₁ % b - (A ∘ ↑e.symm) iβ‚€ % b)) < ↑abv b β€’ Ξ΅

iβ‚€, i₁: ΞΉ

h: (t ∘ ↑e) iβ‚€ = (t ∘ ↑e) i₁


h.e'_3.h.e'_3.h.e'_6.h.e'_5.h.e'_5.h.e'_1
i₁ = ↑e.symm (↑e i₁)
R: Type u_2

inst✝¹: EuclideanDomain R

abv: AbsoluteValue R β„€

ΞΉ: Type u_1

inst✝: Fintype ι

Ξ΅: ℝ

hΞ΅: 0 < Ξ΅

b: R

hb: b β‰  0

A: ΞΉ β†’ R

h✝: IsAdmissible abv

e:= Fintype.equivFin ΞΉ: ΞΉ ≃ Fin (Fintype.card ΞΉ)

t: Fin (Fintype.card ΞΉ) β†’ Fin (IsAdmissible.card h✝ Ξ΅)

ht: βˆ€ (iβ‚€ i₁ : Fin (Fintype.card ΞΉ)), t iβ‚€ = t i₁ β†’ ↑(↑abv ((A ∘ ↑e.symm) i₁ % b - (A ∘ ↑e.symm) iβ‚€ % b)) < ↑abv b β€’ Ξ΅

iβ‚€, i₁: ΞΉ

h: (t ∘ ↑e) iβ‚€ = (t ∘ ↑e) i₁


h.e'_3.h.e'_3.h.e'_6.h.e'_6.h.e'_5.h.e'_1
iβ‚€ = ↑e.symm (↑e iβ‚€)
R: Type u_2

inst✝¹: EuclideanDomain R

abv: AbsoluteValue R β„€

ΞΉ: Type u_1

inst✝: Fintype ι

Ξ΅: ℝ

hΞ΅: 0 < Ξ΅

b: R

hb: b β‰  0

A: ΞΉ β†’ R

h✝: IsAdmissible abv

e:= Fintype.equivFin ΞΉ: ΞΉ ≃ Fin (Fintype.card ΞΉ)

t: Fin (Fintype.card ΞΉ) β†’ Fin (IsAdmissible.card h✝ Ξ΅)

ht: βˆ€ (iβ‚€ i₁ : Fin (Fintype.card ΞΉ)), t iβ‚€ = t i₁ β†’ ↑(↑abv ((A ∘ ↑e.symm) i₁ % b - (A ∘ ↑e.symm) iβ‚€ % b)) < ↑abv b β€’ Ξ΅

iβ‚€, i₁: ΞΉ

h: (t ∘ ↑e) iβ‚€ = (t ∘ ↑e) i₁


intro
↑(↑abv (A i₁ % b - A iβ‚€ % b)) < ↑abv b β€’ Ξ΅
R: Type u_2

inst✝¹: EuclideanDomain R

abv: AbsoluteValue R β„€

ΞΉ: Type u_1

inst✝: Fintype ι

Ξ΅: ℝ

hΞ΅: 0 < Ξ΅

b: R

hb: b β‰  0

A: ΞΉ β†’ R

h✝: IsAdmissible abv

e:= Fintype.equivFin ΞΉ: ΞΉ ≃ Fin (Fintype.card ΞΉ)

t: Fin (Fintype.card ΞΉ) β†’ Fin (IsAdmissible.card h✝ Ξ΅)

ht: βˆ€ (iβ‚€ i₁ : Fin (Fintype.card ΞΉ)), t iβ‚€ = t i₁ β†’ ↑(↑abv ((A ∘ ↑e.symm) i₁ % b - (A ∘ ↑e.symm) iβ‚€ % b)) < ↑abv b β€’ Ξ΅

iβ‚€, i₁: ΞΉ

h: (t ∘ ↑e) iβ‚€ = (t ∘ ↑e) i₁


h.e'_3.h.e'_3.h.e'_6.h.e'_5.h.e'_5.h.e'_1
i₁ = ↑e.symm (↑e i₁)
R: Type u_2

inst✝¹: EuclideanDomain R

abv: AbsoluteValue R β„€

ΞΉ: Type u_1

inst✝: Fintype ι

Ξ΅: ℝ

hΞ΅: 0 < Ξ΅

b: R

hb: b β‰  0

A: ΞΉ β†’ R

h✝: IsAdmissible abv

e:= Fintype.equivFin ΞΉ: ΞΉ ≃ Fin (Fintype.card ΞΉ)

t: Fin (Fintype.card ΞΉ) β†’ Fin (IsAdmissible.card h✝ Ξ΅)

ht: βˆ€ (iβ‚€ i₁ : Fin (Fintype.card ΞΉ)), t iβ‚€ = t i₁ β†’ ↑(↑abv ((A ∘ ↑e.symm) i₁ % b - (A ∘ ↑e.symm) iβ‚€ % b)) < ↑abv b β€’ Ξ΅

iβ‚€, i₁: ΞΉ

h: (t ∘ ↑e) iβ‚€ = (t ∘ ↑e) i₁


h.e'_3.h.e'_3.h.e'_6.h.e'_6.h.e'_5.h.e'_1
iβ‚€ = ↑e.symm (↑e iβ‚€)
R: Type u_2

inst✝¹: EuclideanDomain R

abv: AbsoluteValue R β„€

ΞΉ: Type u_1

inst✝: Fintype ι

Ξ΅: ℝ

hΞ΅: 0 < Ξ΅

b: R

hb: b β‰  0

A: ΞΉ β†’ R

h✝: IsAdmissible abv

e:= Fintype.equivFin ΞΉ: ΞΉ ≃ Fin (Fintype.card ΞΉ)

t: Fin (Fintype.card ΞΉ) β†’ Fin (IsAdmissible.card h✝ Ξ΅)

ht: βˆ€ (iβ‚€ i₁ : Fin (Fintype.card ΞΉ)), t iβ‚€ = t i₁ β†’ ↑(↑abv ((A ∘ ↑e.symm) i₁ % b - (A ∘ ↑e.symm) iβ‚€ % b)) < ↑abv b β€’ Ξ΅

iβ‚€, i₁: ΞΉ

h: (t ∘ ↑e) iβ‚€ = (t ∘ ↑e) i₁


intro
↑(↑abv (A i₁ % b - A iβ‚€ % b)) < ↑abv b β€’ Ξ΅

Goals accomplished! πŸ™
#align absolute_value.is_admissible.exists_partition
AbsoluteValue.IsAdmissible.exists_partition: βˆ€ {R : Type u_2} [inst : EuclideanDomain R] {abv : AbsoluteValue R β„€} {ΞΉ : Type u_1} [inst_1 : Fintype ΞΉ] {Ξ΅ : ℝ}, 0 < Ξ΅ β†’ βˆ€ {b : R}, b β‰  0 β†’ βˆ€ (A : ΞΉ β†’ R) (h : IsAdmissible abv), βˆƒ t, βˆ€ (iβ‚€ i₁ : ΞΉ), t iβ‚€ = t i₁ β†’ ↑(↑abv (A i₁ % b - A iβ‚€ % b)) < ↑abv b β€’ Ξ΅
AbsoluteValue.IsAdmissible.exists_partition
/-- Any large enough family of vectors in `R^n` has a pair of elements whose remainders are close together, pointwise. -/ theorem
exists_approx_aux: βˆ€ {R : Type u_1} [inst : EuclideanDomain R] {abv : AbsoluteValue R β„€} (n : β„•) (h : IsAdmissible abv) {Ξ΅ : ℝ}, 0 < Ξ΅ β†’ βˆ€ {b : R}, b β‰  0 β†’ βˆ€ (A : Fin (Nat.succ (IsAdmissible.card h Ξ΅ ^ n)) β†’ Fin n β†’ R), βˆƒ iβ‚€ i₁, iβ‚€ β‰  i₁ ∧ βˆ€ (k : Fin n), ↑(↑abv (A i₁ k % b - A iβ‚€ k % b)) < ↑abv b β€’ Ξ΅
exists_approx_aux
(n :
β„•: Type
β„•
) (h : abv.
IsAdmissible: {R : Type ?u.39720} β†’ [inst : EuclideanDomain R] β†’ AbsoluteValue R β„€ β†’ Type
IsAdmissible
) : βˆ€ {
Ξ΅: ℝ
Ξ΅
:
ℝ: Type
ℝ
} (
_hΞ΅: 0 < Ξ΅
_hΞ΅
:
0: ?m.39747
0
<
Ξ΅: ℝ
Ξ΅
) {
b: R
b
:
R: Type ?u.39497
R
} (
_hb: b β‰  0
_hb
:
b: R
b
β‰ 
0: ?m.39802
0
) (
A: Fin (Nat.succ (IsAdmissible.card h Ξ΅ ^ n)) β†’ Fin n β†’ R
A
:
Fin: β„• β†’ Type
Fin
(h.
card: {R : Type ?u.40018} β†’ [inst : EuclideanDomain R] β†’ {abv : AbsoluteValue R β„€} β†’ IsAdmissible abv β†’ ℝ β†’ β„•
card
Ξ΅: ℝ
Ξ΅
^ n).
succ: β„• β†’ β„•
succ
β†’
Fin: β„• β†’ Type
Fin
n β†’
R: Type ?u.39497
R
), βˆƒ
iβ‚€: ?m.40073
iβ‚€
i₁: ?m.40078
i₁
,
iβ‚€: ?m.40073
iβ‚€
β‰ 
i₁: ?m.40078
i₁
∧ βˆ€
k: ?m.40084
k
, (abv (
A: Fin (Nat.succ (IsAdmissible.card h Ξ΅ ^ n)) β†’ Fin n β†’ R
A
i₁: ?m.40078
i₁
k: ?m.40084
k
%
b: R
b
-
A: Fin (Nat.succ (IsAdmissible.card h Ξ΅ ^ n)) β†’ Fin n β†’ R
A
iβ‚€: ?m.40073
iβ‚€
k: ?m.40084
k
%
b: R
b
) :
ℝ: Type
ℝ
) < abv
b: R
b
β€’
Ξ΅: ℝ
Ξ΅
:=

Goals accomplished! πŸ™
R: Type u_1

inst✝: EuclideanDomain R

abv: AbsoluteValue R β„€

n: β„•

h: IsAdmissible abv


βˆ€ {Ξ΅ : ℝ}, 0 < Ξ΅ β†’ βˆ€ {b : R}, b β‰  0 β†’ βˆ€ (A : Fin (Nat.succ (IsAdmissible.card h Ξ΅ ^ n)) β†’ Fin n β†’ R), βˆƒ iβ‚€ i₁, iβ‚€ β‰  i₁ ∧ βˆ€ (k : Fin n), ↑(↑abv (A i₁ k % b - A iβ‚€ k % b)) < ↑abv b β€’ Ξ΅
R: Type u_1

inst✝: EuclideanDomain R

abv: AbsoluteValue R β„€

n: β„•

h: IsAdmissible abv

this: DecidableEq R


βˆ€ {Ξ΅ : ℝ}, 0 < Ξ΅ β†’ βˆ€ {b : R}, b β‰  0 β†’ βˆ€ (A : Fin (Nat.succ (IsAdmissible.card h Ξ΅ ^ n)) β†’ Fin n β†’ R), βˆƒ iβ‚€ i₁, iβ‚€ β‰  i₁ ∧ βˆ€ (k : Fin n), ↑(↑abv (A i₁ k % b - A iβ‚€ k % b)) < ↑abv b β€’ Ξ΅
R: Type u_1

inst✝: EuclideanDomain R

abv: AbsoluteValue R β„€

n: β„•

h: IsAdmissible abv


βˆ€ {Ξ΅ : ℝ}, 0 < Ξ΅ β†’ βˆ€ {b : R}, b β‰  0 β†’ βˆ€ (A : Fin (Nat.succ (IsAdmissible.card h Ξ΅ ^ n)) β†’ Fin n β†’ R), βˆƒ iβ‚€ i₁, iβ‚€ β‰  i₁ ∧ βˆ€ (k : Fin n), ↑(↑abv (A i₁ k % b - A iβ‚€ k % b)) < ↑abv b β€’ Ξ΅
R: Type u_1

inst✝: EuclideanDomain R

abv: AbsoluteValue R β„€

h: IsAdmissible abv

this: DecidableEq R


zero
βˆ€ {Ξ΅ : ℝ}, 0 < Ξ΅ β†’ βˆ€ {b : R}, b β‰  0 β†’ βˆ€ (A : Fin (Nat.succ (IsAdmissible.card h Ξ΅ ^ Nat.zero)) β†’ Fin Nat.zero β†’ R), βˆƒ iβ‚€ i₁, iβ‚€ β‰  i₁ ∧ βˆ€ (k : Fin Nat.zero), ↑(↑abv (A i₁ k % b - A iβ‚€ k % b)) < ↑abv b β€’ Ξ΅
R: Type u_1

inst✝: EuclideanDomain R

abv: AbsoluteValue R β„€

h: IsAdmissible abv

this: DecidableEq R

n: β„•

ih: βˆ€ {Ξ΅ : ℝ}, 0 < Ξ΅ β†’ βˆ€ {b : R}, b β‰  0 β†’ βˆ€ (A : Fin (Nat.succ (IsAdmissible.card h Ξ΅ ^ n)) β†’ Fin n β†’ R), βˆƒ iβ‚€ i₁, iβ‚€ β‰  i₁ ∧ βˆ€ (k : Fin n), ↑(↑abv (A i₁ k % b - A iβ‚€ k % b)) < ↑abv b β€’ Ξ΅


succ
βˆ€ {Ξ΅ : ℝ}, 0 < Ξ΅ β†’ βˆ€ {b : R}, b β‰  0 β†’ βˆ€ (A : Fin (Nat.succ (IsAdmissible.card h Ξ΅ ^ Nat.succ n)) β†’ Fin (Nat.succ n) β†’ R), βˆƒ iβ‚€ i₁, iβ‚€ β‰  i₁ ∧ βˆ€ (k : Fin (Nat.succ n)), ↑(↑abv (A i₁ k % b - A iβ‚€ k % b)) < ↑abv b β€’ Ξ΅
R: Type u_1

inst✝: EuclideanDomain R

abv: AbsoluteValue R β„€

n: β„•

h: IsAdmissible abv


βˆ€ {Ξ΅ : ℝ}, 0 < Ξ΅ β†’ βˆ€ {b : R}, b β‰  0 β†’ βˆ€ (A : Fin (Nat.succ (IsAdmissible.card h Ξ΅ ^ n)) β†’ Fin n β†’ R), βˆƒ iβ‚€ i₁, iβ‚€ β‰  i₁ ∧ βˆ€ (k : Fin n), ↑(↑abv (A i₁ k % b - A iβ‚€ k % b)) < ↑abv b β€’ Ξ΅
R: Type u_1

inst✝: EuclideanDomain R

abv: AbsoluteValue R β„€

h: IsAdmissible abv

this: DecidableEq R


zero
βˆ€ {Ξ΅ : ℝ}, 0 < Ξ΅ β†’ βˆ€ {b : R}, b β‰  0 β†’ βˆ€ (A : Fin (Nat.succ (IsAdmissible.card h Ξ΅ ^ Nat.zero)) β†’ Fin Nat.zero β†’ R), βˆƒ iβ‚€ i₁, iβ‚€ β‰  i₁ ∧ βˆ€ (k : Fin Nat.zero), ↑(↑abv (A i₁ k % b - A iβ‚€ k % b)) < ↑abv b β€’ Ξ΅
R: Type u_1

inst✝: EuclideanDomain R

abv: AbsoluteValue R β„€

h: IsAdmissible abv

this: DecidableEq R


zero
βˆ€ {Ξ΅ : ℝ}, 0 < Ξ΅ β†’ βˆ€ {b : R}, b β‰  0 β†’ βˆ€ (A : Fin (Nat.succ (IsAdmissible.card h Ξ΅ ^ Nat.zero)) β†’ Fin Nat.zero β†’ R), βˆƒ iβ‚€ i₁, iβ‚€ β‰  i₁ ∧ βˆ€ (k : Fin Nat.zero), ↑(↑abv (A i₁ k % b - A iβ‚€ k % b)) < ↑abv b β€’ Ξ΅
R: Type u_1

inst✝: EuclideanDomain R

abv: AbsoluteValue R β„€

h: IsAdmissible abv

this: DecidableEq R

n: β„•

ih: βˆ€ {Ξ΅ : ℝ}, 0 < Ξ΅ β†’ βˆ€ {b : R}, b β‰  0 β†’ βˆ€ (A : Fin (Nat.succ (IsAdmissible.card h Ξ΅ ^ n)) β†’ Fin n β†’ R), βˆƒ iβ‚€ i₁, iβ‚€ β‰  i₁ ∧ βˆ€ (k : Fin n), ↑(↑abv (A i₁ k % b - A iβ‚€ k % b)) < ↑abv b β€’ Ξ΅


succ
βˆ€ {Ξ΅ : ℝ}, 0 < Ξ΅ β†’ βˆ€ {b : R}, b β‰  0 β†’ βˆ€ (A : Fin (Nat.succ (IsAdmissible.card h Ξ΅ ^ Nat.succ n)) β†’ Fin (Nat.succ n) β†’ R), βˆƒ iβ‚€ i₁, iβ‚€ β‰  i₁ ∧ βˆ€ (k : Fin (Nat.succ n)), ↑(↑abv (A i₁ k % b - A iβ‚€ k % b)) < ↑abv b β€’ Ξ΅
R: Type u_1

inst✝: EuclideanDomain R

abv: AbsoluteValue R β„€

h: IsAdmissible abv

this: DecidableEq R

Ξ΅: ℝ

_hΞ΅: 0 < Ξ΅

b: R

_hb: b β‰  0

A: Fin (Nat.succ (IsAdmissible.card h Ξ΅ ^ Nat.zero)) β†’ Fin Nat.zero β†’ R


zero
βˆƒ iβ‚€ i₁, iβ‚€ β‰  i₁ ∧ βˆ€ (k : Fin Nat.zero), ↑(↑abv (A i₁ k % b - A iβ‚€ k % b)) < ↑abv b β€’ Ξ΅
R: Type u_1

inst✝: EuclideanDomain R

abv: AbsoluteValue R β„€

h: IsAdmissible abv

this: DecidableEq R


zero
βˆ€ {Ξ΅ : ℝ}, 0 < Ξ΅ β†’ βˆ€ {b : R}, b β‰  0 β†’ βˆ€ (A : Fin (Nat.succ (IsAdmissible.card h Ξ΅ ^ Nat.zero)) β†’ Fin Nat.zero β†’ R), βˆƒ iβ‚€ i₁, iβ‚€ β‰  i₁ ∧ βˆ€ (k : Fin Nat.zero), ↑(↑abv (A i₁ k % b - A iβ‚€ k % b)) < ↑abv b β€’ Ξ΅
R: Type u_1

inst✝: EuclideanDomain R

abv: AbsoluteValue R β„€

h: IsAdmissible abv

this: DecidableEq R

Ξ΅: ℝ

_hΞ΅: 0 < Ξ΅

b: R

_hb: b β‰  0

A: Fin (Nat.succ (IsAdmissible.card h Ξ΅ ^ Nat.zero)) β†’ Fin Nat.zero β†’ R


zero.refine'_1
0 β‰  1
R: Type u_1

inst✝: EuclideanDomain R

abv: AbsoluteValue R β„€

h: IsAdmissible abv

this: DecidableEq R

Ξ΅: ℝ

_hΞ΅: 0 < Ξ΅

b: R

_hb: b β‰  0

A: Fin (Nat.succ (IsAdmissible.card h Ξ΅ ^ Nat.zero)) β†’ Fin Nat.zero β†’ R


zero.refine'_2
βˆ€ (k : Fin Nat.zero), ↑(↑abv (A 1 k % b - A 0 k % b)) < ↑abv b β€’ Ξ΅
R: Type u_1

inst✝: EuclideanDomain R

abv: AbsoluteValue R β„€

h: IsAdmissible abv

this: DecidableEq R


zero
βˆ€ {Ξ΅ : ℝ}, 0 < Ξ΅ β†’ βˆ€ {b : R}, b β‰  0 β†’ βˆ€ (A : Fin (Nat.succ (IsAdmissible.card h Ξ΅ ^ Nat.zero)) β†’ Fin Nat.zero β†’ R), βˆƒ iβ‚€ i₁, iβ‚€ β‰  i₁ ∧ βˆ€ (k : Fin Nat.zero), ↑(↑abv (A i₁ k % b - A iβ‚€ k % b)) < ↑abv b β€’ Ξ΅
R: Type u_1

inst✝: EuclideanDomain R

abv: AbsoluteValue R β„€

h: IsAdmissible abv

this: DecidableEq R

Ξ΅: ℝ

_hΞ΅: 0 < Ξ΅

b: R

_hb: b β‰  0

A: Fin (Nat.succ (IsAdmissible.card h Ξ΅ ^ Nat.zero)) β†’ Fin Nat.zero β†’ R


zero.refine'_1
0 β‰  1
R: Type u_1

inst✝: EuclideanDomain R

abv: AbsoluteValue R β„€

h: IsAdmissible abv

this: DecidableEq R

Ξ΅: ℝ

_hΞ΅: 0 < Ξ΅

b: R

_hb: b β‰  0

A: Fin (Nat.succ (IsAdmissible.card h Ξ΅ ^ Nat.zero)) β†’ Fin Nat.zero β†’ R


zero.refine'_1
0 β‰  1
R: Type u_1

inst✝: EuclideanDomain R

abv: AbsoluteValue R β„€

h: IsAdmissible abv

this: DecidableEq R

Ξ΅: ℝ

_hΞ΅: 0 < Ξ΅

b: R

_hb: b β‰  0

A: Fin (Nat.succ (IsAdmissible.card h Ξ΅ ^ Nat.zero)) β†’ Fin Nat.zero β†’ R


zero.refine'_2
βˆ€ (k : Fin Nat.zero), ↑(↑abv (A 1 k % b - A 0 k % b)) < ↑abv b β€’ Ξ΅

Goals accomplished! πŸ™
R: Type u_1

inst✝: EuclideanDomain R

abv: AbsoluteValue R β„€

h: IsAdmissible abv

this: DecidableEq R


zero
βˆ€ {Ξ΅ : ℝ}, 0 < Ξ΅ β†’ βˆ€ {b : R}, b β‰  0 β†’ βˆ€ (A : Fin (Nat.succ (IsAdmissible.card h Ξ΅ ^ Nat.zero)) β†’ Fin Nat.zero β†’ R), βˆƒ iβ‚€ i₁, iβ‚€ β‰  i₁ ∧ βˆ€ (k : Fin Nat.zero), ↑(↑abv (A i₁ k % b - A iβ‚€ k % b)) < ↑abv b β€’ Ξ΅

Goals accomplished! πŸ™
R: Type u_1

inst✝: EuclideanDomain R

abv: AbsoluteValue R β„€

n: β„•

h: IsAdmissible abv


βˆ€ {Ξ΅ : ℝ}, 0 < Ξ΅ β†’ βˆ€ {b : R}, b β‰  0 β†’ βˆ€ (A : Fin (Nat.succ (IsAdmissible.card h Ξ΅ ^ n)) β†’ Fin n β†’ R), βˆƒ iβ‚€ i₁, iβ‚€ β‰  i₁ ∧ βˆ€ (k : Fin n), ↑(↑abv (A i₁ k % b - A iβ‚€ k % b)) < ↑abv b β€’ Ξ΅
R: Type u_1

inst✝: EuclideanDomain R

abv: AbsoluteValue R β„€

h: IsAdmissible abv

this: DecidableEq R

n: β„•

ih: βˆ€ {Ξ΅ : ℝ}, 0 < Ξ΅ β†’ βˆ€ {b : R}, b β‰  0 β†’ βˆ€ (A : Fin (Nat.succ (IsAdmissible.card h Ξ΅ ^ n)) β†’ Fin n β†’ R), βˆƒ iβ‚€ i₁, iβ‚€ β‰  i₁ ∧ βˆ€ (k : Fin n), ↑(↑abv (A i₁ k % b - A iβ‚€ k % b)) < ↑abv b β€’ Ξ΅

Ξ΅: ℝ

hΞ΅: 0 < Ξ΅

b: R

hb: b β‰  0

A: Fin (Nat.succ (IsAdmissible.card h Ξ΅ ^ Nat.succ n)) β†’ Fin (Nat.succ n) β†’ R


succ
βˆƒ iβ‚€ i₁, iβ‚€ β‰  i₁ ∧ βˆ€ (k : Fin (Nat.succ n)), ↑(↑abv (A i₁ k % b - A iβ‚€ k % b)) < ↑abv b β€’ Ξ΅
R: Type u_1

inst✝: EuclideanDomain R

abv: AbsoluteValue R β„€

n: β„•

h: IsAdmissible abv


βˆ€ {Ξ΅ : ℝ}, 0 < Ξ΅ β†’ βˆ€ {b : R}, b β‰  0 β†’ βˆ€ (A : Fin (Nat.succ (IsAdmissible.card h Ξ΅ ^ n)) β†’ Fin n β†’ R), βˆƒ iβ‚€ i₁, iβ‚€ β‰  i₁ ∧ βˆ€ (k : Fin n), ↑(↑abv (A i₁ k % b - A iβ‚€ k % b)) < ↑abv b β€’ Ξ΅
R: Type u_1

inst✝: EuclideanDomain R

abv: AbsoluteValue R β„€

h: IsAdmissible abv

this: DecidableEq R

n: β„•

ih: βˆ€ {Ξ΅ : ℝ}, 0 < Ξ΅ β†’ βˆ€ {b : R}, b β‰  0 β†’ βˆ€ (A : Fin (Nat.succ (IsAdmissible.card h Ξ΅ ^ n)) β†’ Fin n β†’ R), βˆƒ iβ‚€ i₁, iβ‚€ β‰  i₁ ∧ βˆ€ (k : Fin n), ↑(↑abv (A i₁ k % b - A iβ‚€ k % b)) < ↑abv b β€’ Ξ΅

Ξ΅: ℝ

hΞ΅: 0 < Ξ΅

b: R

hb: b β‰  0

A: Fin (Nat.succ (IsAdmissible.card h Ξ΅ ^ Nat.succ n)) β†’ Fin (Nat.succ n) β†’ R

M:= IsAdmissible.card h Ξ΅: β„•


succ
βˆƒ iβ‚€ i₁, iβ‚€ β‰  i₁ ∧ βˆ€ (k : Fin (Nat.succ n)), ↑(↑abv (A i₁ k % b - A iβ‚€ k % b)) < ↑abv b β€’ Ξ΅
R: Type u_1

inst✝: EuclideanDomain R

abv: AbsoluteValue R β„€

n: β„•

h: IsAdmissible abv


βˆ€ {Ξ΅ : ℝ}, 0 < Ξ΅ β†’ βˆ€ {b : R}, b β‰  0 β†’ βˆ€ (A : Fin (Nat.succ (IsAdmissible.card h Ξ΅ ^ n)) β†’ Fin n β†’ R), βˆƒ iβ‚€ i₁, iβ‚€ β‰  i₁ ∧ βˆ€ (k : Fin n), ↑(↑abv (A i₁ k % b - A iβ‚€ k % b)) < ↑abv b β€’ Ξ΅
R: Type u_1

inst✝: EuclideanDomain R

abv: AbsoluteValue R β„€

h: IsAdmissible abv

this: DecidableEq R

n: β„•

ih: βˆ€ {Ξ΅ : ℝ}, 0 < Ξ΅ β†’ βˆ€ {b : R}, b β‰  0 β†’ βˆ€ (A : Fin (Nat.succ (IsAdmissible.card h Ξ΅ ^ n)) β†’ Fin n β†’ R), βˆƒ iβ‚€ i₁, iβ‚€ β‰  i₁ ∧ βˆ€ (k : Fin n), ↑(↑abv (A i₁ k % b - A iβ‚€ k % b)) < ↑abv b β€’ Ξ΅

Ξ΅: ℝ

hΞ΅: 0 < Ξ΅

b: R

hb: b β‰  0

A: Fin (Nat.succ (IsAdmissible.card h Ξ΅ ^ Nat.succ n)) β†’ Fin (Nat.succ n) β†’ R

M:= IsAdmissible.card h Ξ΅: β„•


succ
βˆƒ iβ‚€ i₁, iβ‚€ β‰  i₁ ∧ βˆ€ (k : Fin (Nat.succ n)), ↑(↑abv (A i₁ k % b - A iβ‚€ k % b)) < ↑abv b β€’ Ξ΅

Goals accomplished! πŸ™
R: Type u_1

inst✝: EuclideanDomain R

abv: AbsoluteValue R β„€

h: IsAdmissible abv

this: DecidableEq R

n: β„•

ih: βˆ€ {Ξ΅ : ℝ}, 0 < Ξ΅ β†’ βˆ€ {b : R}, b β‰  0 β†’ βˆ€ (A : Fin (Nat.succ (IsAdmissible.card h Ξ΅ ^ n)) β†’ Fin n β†’ R), βˆƒ iβ‚€ i₁, iβ‚€ β‰  i₁ ∧ βˆ€ (k : Fin n), ↑(↑abv (A i₁ k % b - A iβ‚€ k % b)) < ↑abv b β€’ Ξ΅

Ξ΅: ℝ

hΞ΅: 0 < Ξ΅

b: R

hb: b β‰  0

A: Fin (Nat.succ (IsAdmissible.card h Ξ΅ ^ Nat.succ n)) β†’ Fin (Nat.succ n) β†’ R

M:= IsAdmissible.card h Ξ΅: β„•


βˆƒ s, Function.Injective s ∧ βˆ€ (iβ‚€ i₁ : Fin (Nat.succ (M ^ n))), ↑(↑abv (A (s i₁) 0 % b - A (s iβ‚€) 0 % b)) < ↑abv b β€’ Ξ΅
R: Type u_1

inst✝: EuclideanDomain R

abv: AbsoluteValue R β„€

h: IsAdmissible abv

this: DecidableEq R

n: β„•

ih: βˆ€ {Ξ΅ : ℝ}, 0 < Ξ΅ β†’ βˆ€ {b : R}, b β‰  0 β†’ βˆ€ (A : Fin (Nat.succ (IsAdmissible.card h Ξ΅ ^ n)) β†’ Fin n β†’ R), βˆƒ iβ‚€ i₁, iβ‚€ β‰  i₁ ∧ βˆ€ (k : Fin n), ↑(↑abv (A i₁ k % b - A iβ‚€ k % b)) < ↑abv b β€’ Ξ΅

Ξ΅: ℝ

hΞ΅: 0 < Ξ΅

b: R

hb: b β‰  0

A: Fin (Nat.succ (IsAdmissible.card h Ξ΅ ^ Nat.succ n)) β†’ Fin (Nat.succ n) β†’ R

M:= IsAdmissible.card h Ξ΅: β„•

t: Fin (Nat.succ (M ^ Nat.succ n)) β†’ Fin M

ht: βˆ€ (iβ‚€ i₁ : Fin (Nat.succ (M ^ Nat.succ n))), t iβ‚€ = t i₁ β†’ ↑(↑abv (A i₁ 0 % b - A iβ‚€ 0 % b)) < ↑abv b β€’ Ξ΅


intro
βˆƒ s, Function.Injective s ∧ βˆ€ (iβ‚€ i₁ : Fin (Nat.succ (M ^ n))), ↑(↑abv (A (s i₁) 0 % b - A (s iβ‚€) 0 % b)) < ↑abv b β€’ Ξ΅
R: Type u_1

inst✝: EuclideanDomain R

abv: AbsoluteValue R β„€

h: IsAdmissible abv

this: DecidableEq R

n: β„•

ih: βˆ€ {Ξ΅ : ℝ}, 0 < Ξ΅ β†’ βˆ€ {b : R}, b β‰  0 β†’ βˆ€ (A : Fin (Nat.succ (IsAdmissible.card h Ξ΅ ^ n)) β†’ Fin n β†’ R), βˆƒ iβ‚€ i₁, iβ‚€ β‰  i₁ ∧ βˆ€ (k : Fin n), ↑(↑abv (A i₁ k % b - A iβ‚€ k % b)) < ↑abv b β€’ Ξ΅

Ξ΅: ℝ

hΞ΅: 0 < Ξ΅

b: R

hb: b β‰  0

A: Fin (Nat.succ (IsAdmissible.card h Ξ΅ ^ Nat.succ n)) β†’ Fin (Nat.succ n) β†’ R

M:= IsAdmissible.card h Ξ΅: β„•


βˆƒ s, Function.Injective s ∧ βˆ€ (iβ‚€ i₁ : Fin (Nat.succ (M ^ n))), ↑(↑abv (A (s i₁) 0 % b - A (s iβ‚€) 0 % b)) < ↑abv b β€’ Ξ΅
R: Type u_1

inst✝: EuclideanDomain R

abv: AbsoluteValue R β„€

h: IsAdmissible abv

this: DecidableEq R

n: β„•

ih: βˆ€ {Ξ΅ : ℝ}, 0 < Ξ΅ β†’ βˆ€ {b : R}, b β‰  0 β†’ βˆ€ (A : Fin (Nat.succ (IsAdmissible.card h Ξ΅ ^ n)) β†’ Fin n β†’ R), βˆƒ iβ‚€ i₁, iβ‚€ β‰  i₁ ∧ βˆ€ (k : Fin n), ↑(↑abv (A i₁ k % b - A iβ‚€ k % b)) < ↑abv b β€’ Ξ΅

Ξ΅: ℝ

hΞ΅: 0 < Ξ΅

b: R

hb: b β‰  0

A: Fin (Nat.succ (IsAdmissible.card h Ξ΅ ^ Nat.succ n)) β†’ Fin (Nat.succ n) β†’ R

M:= IsAdmissible.card h Ξ΅: β„•

t: Fin (Nat.succ (M ^ Nat.succ n)) β†’ Fin M

ht: βˆ€ (iβ‚€ i₁ : Fin (Nat.succ (M ^ Nat.succ n))), t iβ‚€ = t i₁ β†’ ↑(↑abv (A i₁ 0 % b - A iβ‚€ 0 % b)) < ↑abv b β€’ Ξ΅


intro
βˆƒ s, Function.Injective s ∧ βˆ€ (iβ‚€ i₁ : Fin (Nat.succ (M ^ n))), ↑(↑abv (A (s i₁) 0 % b - A (s iβ‚€) 0 % b)) < ↑abv b β€’ Ξ΅

Goals accomplished! πŸ™
R: Type u_1

inst✝: EuclideanDomain R

abv: AbsoluteValue R β„€

h: IsAdmissible abv

this: DecidableEq R

n: β„•

ih: βˆ€ {Ξ΅ : ℝ}, 0 < Ξ΅ β†’ βˆ€ {b : R}, b β‰  0 β†’ βˆ€ (A : Fin (Nat.succ (IsAdmissible.card h Ξ΅ ^ n)) β†’ Fin n β†’ R), βˆƒ iβ‚€ i₁, iβ‚€ β‰  i₁ ∧ βˆ€ (k : Fin n), ↑(↑abv (A i₁ k % b - A iβ‚€ k % b)) < ↑abv b β€’ Ξ΅

Ξ΅: ℝ

hΞ΅: 0 < Ξ΅

b: R

hb: b β‰  0

A: Fin (Nat.succ (IsAdmissible.card h Ξ΅ ^ Nat.succ n)) β†’ Fin (Nat.succ n) β†’ R

M:= IsAdmissible.card h Ξ΅: β„•

t: Fin (Nat.succ (M ^ Nat.succ n)) β†’ Fin M

ht: βˆ€ (iβ‚€ i₁ : Fin (Nat.succ (M ^ Nat.succ n))), t iβ‚€ = t i₁ β†’ ↑(↑abv (A i₁ 0 % b - A iβ‚€ 0 % b)) < ↑abv b β€’ Ξ΅



Goals accomplished! πŸ™
R: Type u_1

inst✝: EuclideanDomain R

abv: AbsoluteValue R β„€

h: IsAdmissible abv

this: DecidableEq R

n: β„•

ih: βˆ€ {Ξ΅ : ℝ}, 0 < Ξ΅ β†’ βˆ€ {b : R}, b β‰  0 β†’ βˆ€ (A : Fin (Nat.succ (IsAdmissible.card h Ξ΅ ^ n)) β†’ Fin n β†’ R), βˆƒ iβ‚€ i₁, iβ‚€ β‰  i₁ ∧ βˆ€ (k : Fin n), ↑(↑abv (A i₁ k % b - A iβ‚€ k % b)) < ↑abv b β€’ Ξ΅

Ξ΅: ℝ

hΞ΅: 0 < Ξ΅

b: R

hb: b β‰  0

A: Fin (Nat.succ (IsAdmissible.card h Ξ΅ ^ Nat.succ n)) β†’ Fin (Nat.succ n) β†’ R

M:= IsAdmissible.card h Ξ΅: β„•

t: Fin (Nat.succ (M ^ Nat.succ n)) β†’ Fin M

ht: βˆ€ (iβ‚€ i₁ : Fin (Nat.succ (M ^ Nat.succ n))), t iβ‚€ = t i₁ β†’ ↑(↑abv (A i₁ 0 % b - A iβ‚€ 0 % b)) < ↑abv b β€’ Ξ΅

s: Fin M

hs: M ^ n < Finset.card (Finset.filter (fun x => t x = s) Finset.univ)


intro.intro
βˆƒ s, Function.Injective s ∧ βˆ€ (iβ‚€ i₁ : Fin (Nat.succ (M ^ n))), ↑(↑abv (A (s i₁) 0 % b - A (s iβ‚€) 0 % b)) < ↑abv b β€’ Ξ΅
R: Type u_1

inst✝: EuclideanDomain R

abv: AbsoluteValue R β„€

h: IsAdmissible abv

this: DecidableEq R

n: β„•

ih: βˆ€ {Ξ΅ : ℝ}, 0 < Ξ΅ β†’ βˆ€ {b : R}, b β‰  0 β†’ βˆ€ (A : Fin (Nat.succ (IsAdmissible.card h Ξ΅ ^ n)) β†’ Fin n β†’ R), βˆƒ iβ‚€ i₁, iβ‚€ β‰  i₁ ∧ βˆ€ (k : Fin n), ↑(↑abv (A i₁ k % b - A iβ‚€ k % b)) < ↑abv b β€’ Ξ΅

Ξ΅: ℝ

hΞ΅: 0 < Ξ΅

b: R

hb: b β‰  0

A: Fin (Nat.succ (IsAdmissible.card h Ξ΅ ^ Nat.succ n)) β†’ Fin (Nat.succ n) β†’ R

M:= IsAdmissible.card h Ξ΅: β„•


βˆƒ s, Function.Injective s ∧ βˆ€ (iβ‚€ i₁ : Fin (Nat.succ (M ^ n))), ↑(↑abv (A (s i₁) 0 % b - A (s iβ‚€) 0 % b)) < ↑abv b β€’ Ξ΅
R: Type u_1

inst✝: EuclideanDomain R

abv: AbsoluteValue R β„€

h: IsAdmissible abv

this: DecidableEq R

n: β„•

ih: βˆ€ {Ξ΅ : ℝ}, 0 < Ξ΅ β†’ βˆ€ {b : R}, b β‰  0 β†’ βˆ€ (A : Fin (Nat.succ (IsAdmissible.card h Ξ΅ ^ n)) β†’ Fin n β†’ R), βˆƒ iβ‚€ i₁, iβ‚€ β‰  i₁ ∧ βˆ€ (k : Fin n), ↑(↑abv (A i₁ k % b - A iβ‚€ k % b)) < ↑abv b β€’ Ξ΅

Ξ΅: ℝ

hΞ΅: 0 < Ξ΅

b: R

hb: b β‰  0

A: Fin (Nat.succ (IsAdmissible.card h Ξ΅ ^ Nat.succ n)) β†’ Fin (Nat.succ n) β†’ R

M:= IsAdmissible.card h Ξ΅: β„•

t: Fin (Nat.succ (M ^ Nat.succ n)) β†’ Fin M

ht: βˆ€ (iβ‚€ i₁ : Fin (Nat.succ (M ^ Nat.succ n))), t iβ‚€ = t i₁ β†’ ↑(↑abv (A i₁ 0 % b - A iβ‚€ 0 % b)) < ↑abv b β€’ Ξ΅

s: Fin M

hs: M ^ n < Finset.card (Finset.filter (fun x => t x = s) Finset.univ)

i: Fin (Nat.succ (M ^ n))


intro.intro.refine'_1
↑i < List.length (Finset.toList (Finset.filter (fun x => t x = s) Finset.univ))
R: Type u_1

inst✝: EuclideanDomain R

abv: AbsoluteValue R β„€

h: IsAdmissible abv

this: DecidableEq R

n: β„•

ih: βˆ€ {Ξ΅ : ℝ}, 0 < Ξ΅ β†’ βˆ€ {b : R}, b β‰  0 β†’ βˆ€ (A : Fin (Nat.succ (IsAdmissible.card h Ξ΅ ^ n)) β†’ Fin n β†’ R), βˆƒ iβ‚€ i₁, iβ‚€ β‰  i₁ ∧ βˆ€ (k : Fin n), ↑(↑abv (A i₁ k % b - A iβ‚€ k % b)) < ↑abv b β€’ Ξ΅

Ξ΅: ℝ

hΞ΅: 0 < Ξ΅

b: R

hb: b β‰  0

A: Fin (Nat.succ (IsAdmissible.card h Ξ΅ ^ Nat.succ n)) β†’ Fin (Nat.succ n) β†’ R

M:= IsAdmissible.card h Ξ΅: β„•

t: Fin (Nat.succ (M ^ Nat.succ n)) β†’ Fin M

ht: βˆ€ (iβ‚€ i₁ : Fin (Nat.succ (M ^ Nat.succ n))), t iβ‚€ = t i₁ β†’ ↑(↑abv (A i₁ 0 % b - A iβ‚€ 0 % b)) < ↑abv b β€’ Ξ΅

s: Fin M

hs: M ^ n < Finset.card (Finset.filter (fun x => t x = s) Finset.univ)


intro.intro.refine'_2
Function.Injective fun i => List.nthLe (Finset.toList (Finset.filter (fun x => t x = s) Finset.univ)) ↑i (_ : ↑i < List.length (Finset.toList (Finset.filter (fun x => t x = s) Finset.univ)))
R: Type u_1

inst✝: EuclideanDomain R

abv: AbsoluteValue R β„€

h: IsAdmissible abv

this: DecidableEq R

n: β„•

ih: βˆ€ {Ξ΅ : ℝ}, 0 < Ξ΅ β†’ βˆ€ {b : R}, b β‰  0 β†’ βˆ€ (A : Fin (Nat.succ (IsAdmissible.card h Ξ΅ ^ n)) β†’ Fin n β†’ R), βˆƒ iβ‚€ i₁, iβ‚€ β‰  i₁ ∧ βˆ€ (k : Fin n), ↑(↑abv (A i₁ k % b - A iβ‚€ k % b)) < ↑abv b β€’ Ξ΅

Ξ΅: ℝ

hΞ΅: 0 < Ξ΅

b: R

hb: b β‰  0

A: Fin (Nat.succ (IsAdmissible.card h Ξ΅ ^ Nat.succ n)) β†’ Fin (Nat.succ n) β†’ R

M:= IsAdmissible.card h Ξ΅: β„•

t: Fin (Nat.succ (M ^ Nat.succ n)) β†’ Fin M

ht: βˆ€ (iβ‚€ i₁ : Fin (Nat.succ (M ^ Nat.succ n))), t iβ‚€ = t i₁ β†’ ↑(↑abv (A i₁ 0 % b - A iβ‚€ 0 % b)) < ↑abv b β€’ Ξ΅

s: Fin M

hs: M ^ n < Finset.card (Finset.filter (fun x => t x = s) Finset.univ)

iβ‚€, i₁: Fin (Nat.succ (M ^ n))


intro.intro.refine'_3
t ((fun i => List.nthLe (Finset.toList (Finset.filter (fun x => t x = s) Finset.univ)) ↑i (_ : ↑i < List.length (Finset.toList (Finset.filter (fun x => t x = s) Finset.univ)))) iβ‚€) = t ((fun i => List.nthLe (Finset.toList (Finset.filter (fun x => t x = s) Finset.univ)) ↑i (_ : ↑i < List.length (Finset.toList (Finset.filter (fun x => t x = s) Finset.univ)))) i₁)
R: Type u_1

inst✝: EuclideanDomain R

abv: AbsoluteValue R β„€

h: IsAdmissible abv

this: DecidableEq R

n: β„•

ih: βˆ€ {Ξ΅ : ℝ}, 0 < Ξ΅ β†’ βˆ€ {b : R}, b β‰  0 β†’ βˆ€ (A : Fin (Nat.succ (IsAdmissible.card h Ξ΅ ^ n)) β†’ Fin n β†’ R), βˆƒ iβ‚€ i₁, iβ‚€ β‰  i₁ ∧ βˆ€ (k : Fin n), ↑(↑abv (A i₁ k % b - A iβ‚€ k % b)) < ↑abv b β€’ Ξ΅

Ξ΅: ℝ

hΞ΅: 0 < Ξ΅

b: R

hb: b β‰  0

A: Fin (Nat.succ (IsAdmissible.card h Ξ΅ ^ Nat.succ n)) β†’ Fin (Nat.succ n) β†’ R

M:= IsAdmissible.card h Ξ΅: β„•


βˆƒ s, Function.Injective s ∧ βˆ€ (iβ‚€ i₁ : Fin (Nat.succ (M ^ n))), ↑(↑abv (A (s i₁) 0 % b - A (s iβ‚€) 0 % b)) < ↑abv b β€’ Ξ΅
R: Type u_1

inst✝: EuclideanDomain R

abv: AbsoluteValue R β„€

h: IsAdmissible abv

this: DecidableEq R

n: β„•

ih: βˆ€ {Ξ΅ : ℝ}, 0 < Ξ΅ β†’ βˆ€ {b : R}, b β‰  0 β†’ βˆ€ (A : Fin (Nat.succ (IsAdmissible.card h Ξ΅ ^ n)) β†’ Fin n β†’ R), βˆƒ iβ‚€ i₁, iβ‚€ β‰  i₁ ∧ βˆ€ (k : Fin n), ↑(↑abv (A i₁ k % b - A iβ‚€ k % b)) < ↑abv b β€’ Ξ΅

Ξ΅: ℝ

hΞ΅: 0 < Ξ΅

b: R

hb: b β‰  0

A: Fin (Nat.succ (IsAdmissible.card h Ξ΅ ^ Nat.succ n)) β†’ Fin (Nat.succ n) β†’ R

M:= IsAdmissible.card h Ξ΅: β„•

t: Fin (Nat.succ (M ^ Nat.succ n)) β†’ Fin M

ht: βˆ€ (iβ‚€ i₁ : Fin (Nat.succ (M ^ Nat.succ n))), t iβ‚€ = t i₁ β†’ ↑(↑abv (A i₁ 0 % b - A iβ‚€ 0 % b)) < ↑abv b β€’ Ξ΅

s: Fin M

hs: M ^ n < Finset.card (Finset.filter (fun x => t x = s) Finset.univ)

i: Fin (Nat.succ (M ^ n))


intro.intro.refine'_1
↑i < List.length (Finset.toList (Finset.filter (fun x => t x = s) Finset.univ))
R: Type u_1

inst✝: EuclideanDomain R

abv: AbsoluteValue R β„€

h: IsAdmissible abv

this: DecidableEq R

n: β„•

ih: βˆ€ {Ξ΅ : ℝ}, 0 < Ξ΅ β†’ βˆ€ {b : R}, b β‰  0 β†’ βˆ€ (A : Fin (Nat.succ (IsAdmissible.card h Ξ΅ ^ n)) β†’ Fin n β†’ R), βˆƒ iβ‚€ i₁, iβ‚€ β‰  i₁ ∧ βˆ€ (k : Fin n), ↑(↑abv (A i₁ k % b - A iβ‚€ k % b)) < ↑abv b β€’ Ξ΅

Ξ΅: ℝ

hΞ΅: 0 < Ξ΅

b: R

hb: b β‰  0

A: Fin (Nat.succ (IsAdmissible.card h Ξ΅ ^ Nat.succ n)) β†’ Fin (Nat.succ n) β†’ R

M:= IsAdmissible.card h Ξ΅: β„•

t: Fin (Nat.succ (M ^ Nat.succ n)) β†’ Fin M

ht: βˆ€ (iβ‚€ i₁ : Fin (Nat.succ (M ^ Nat.succ n))), t iβ‚€ = t i₁ β†’ ↑(↑abv (A i₁ 0 % b - A iβ‚€ 0 % b)) < ↑abv b β€’ Ξ΅

s: Fin M

hs: M ^ n < Finset.card (Finset.filter (fun x => t x = s) Finset.univ)

i: Fin (Nat.succ (M ^ n))


intro.intro.refine'_1
↑i < List.length (Finset.toList (Finset.filter (fun x => t x = s) Finset.univ))
R: Type u_1

inst✝: EuclideanDomain R

abv: AbsoluteValue R β„€

h: IsAdmissible abv

this: DecidableEq R

n: β„•

ih: βˆ€ {Ξ΅ : ℝ}, 0 < Ξ΅ β†’ βˆ€ {b : R}, b β‰  0 β†’ βˆ€ (A : Fin (Nat.succ (IsAdmissible.card h Ξ΅ ^ n)) β†’ Fin n β†’ R), βˆƒ iβ‚€ i₁, iβ‚€ β‰  i₁ ∧ βˆ€ (k : Fin n), ↑(↑abv (A i₁ k % b - A iβ‚€ k % b)) < ↑abv b β€’ Ξ΅

Ξ΅: ℝ

hΞ΅: 0 < Ξ΅

b: R

hb: b β‰  0

A: Fin (Nat.succ (IsAdmissible.card h Ξ΅ ^ Nat.succ n)) β†’ Fin (Nat.succ n) β†’ R

M:= IsAdmissible.card h Ξ΅: β„•

t: Fin (Nat.succ (M ^ Nat.succ n)) β†’ Fin M

ht: βˆ€ (iβ‚€ i₁ : Fin (Nat.succ (M ^ Nat.succ n))), t iβ‚€ = t i₁ β†’ ↑(↑abv (A i₁ 0 % b - A iβ‚€ 0 % b)) < ↑abv b β€’ Ξ΅

s: Fin M

hs: M ^ n < Finset.card (Finset.filter (fun x => t x = s) Finset.univ)


intro.intro.refine'_2
Function.Injective fun i => List.nthLe (Finset.toList (Finset.filter (fun x => t x = s) Finset.univ)) ↑i (_ : ↑i < List.length (Finset.toList (Finset.filter (fun x => t x = s) Finset.univ)))
R: Type u_1

inst✝: EuclideanDomain R

abv: AbsoluteValue R β„€

h: IsAdmissible abv

this: DecidableEq R

n: β„•

ih: βˆ€ {Ξ΅ : ℝ}, 0 < Ξ΅ β†’ βˆ€ {b : R}, b β‰  0 β†’ βˆ€ (A : Fin (Nat.succ (IsAdmissible.card h Ξ΅ ^ n)) β†’ Fin n β†’ R), βˆƒ iβ‚€ i₁, iβ‚€ β‰  i₁ ∧ βˆ€ (k : Fin n), ↑(↑abv (A i₁ k % b - A iβ‚€ k % b)) < ↑abv b β€’ Ξ΅

Ξ΅: ℝ

hΞ΅: 0 < Ξ΅

b: R

hb: b β‰  0

A: Fin (Nat.succ (IsAdmissible.card h Ξ΅ ^ Nat.succ n)) β†’ Fin (Nat.succ n) β†’ R

M:= IsAdmissible.card h Ξ΅: β„•

t: Fin (Nat.succ (M ^ Nat.succ n)) β†’ Fin M

ht: βˆ€ (iβ‚€ i₁ : Fin (Nat.succ (M ^ Nat.succ n))), t iβ‚€ = t i₁ β†’ ↑(↑abv (A i₁ 0 % b - A iβ‚€ 0 % b)) < ↑abv b β€’ Ξ΅

s: Fin M

hs: M ^ n < Finset.card (Finset.filter (fun x => t x = s) Finset.univ)

iβ‚€, i₁: Fin (Nat.succ (M ^ n))


intro.intro.refine'_3
t ((fun i => List.nthLe (Finset.toList (Finset.filter (fun x => t x = s) Finset.univ)) ↑i (_ : ↑i < List.length (Finset.toList (Finset.filter (fun x => t x = s) Finset.univ)))) iβ‚€) = t ((fun i => List.nthLe (Finset.toList (Finset.filter (fun x => t x = s) Finset.univ)) ↑i (_ : ↑i < List.length (Finset.toList (Finset.filter (fun x => t x = s) Finset.univ)))) i₁)
R: Type u_1

inst✝: EuclideanDomain R

abv: AbsoluteValue R β„€

h: IsAdmissible abv

this: DecidableEq R

n: β„•

ih: βˆ€ {Ξ΅ : ℝ}, 0 < Ξ΅ β†’ βˆ€ {b : R}, b β‰  0 β†’ βˆ€ (A : Fin (Nat.succ (IsAdmissible.card h Ξ΅ ^ n)) β†’ Fin n β†’ R), βˆƒ iβ‚€ i₁, iβ‚€ β‰  i₁ ∧ βˆ€ (k : Fin n), ↑(↑abv (A i₁ k % b - A iβ‚€ k % b)) < ↑abv b β€’ Ξ΅

Ξ΅: ℝ

hΞ΅: 0 < Ξ΅

b: R

hb: b β‰  0

A: Fin (Nat.succ (IsAdmissible.card h Ξ΅ ^ Nat.succ n)) β†’ Fin (Nat.succ n) β†’ R

M:= IsAdmissible.card h Ξ΅: β„•

t: Fin (Nat.succ (M ^ Nat.succ n)) β†’ Fin M

ht: βˆ€ (iβ‚€ i₁ : Fin (Nat.succ (M ^ Nat.succ n))), t iβ‚€ = t i₁ β†’ ↑(↑abv (A i₁ 0 % b - A iβ‚€ 0 % b)) < ↑abv b β€’ Ξ΅

s: Fin M

hs: M ^ n < Finset.card (Finset.filter (fun x => t x = s) Finset.univ)

i: Fin (Nat.succ (M ^ n))


intro.intro.refine'_1
Nat.succ (M ^ n) ≀ List.length (Finset.toList (Finset.filter (fun x => t x = s) Finset.univ))
R: Type u_1

inst✝: EuclideanDomain R

abv: AbsoluteValue R β„€

h: IsAdmissible abv

this: DecidableEq R

n: β„•

ih: βˆ€ {Ξ΅ : ℝ}, 0 < Ξ΅ β†’ βˆ€ {b : R}, b β‰  0 β†’ βˆ€ (A : Fin (Nat.succ (IsAdmissible.card h Ξ΅ ^ n)) β†’ Fin n β†’ R), βˆƒ iβ‚€ i₁, iβ‚€ β‰  i₁ ∧ βˆ€ (k : Fin n), ↑(↑abv (A i₁ k % b - A iβ‚€ k % b)) < ↑abv b β€’ Ξ΅

Ξ΅: ℝ

hΞ΅: 0 < Ξ΅

b: R

hb: b β‰  0

A: Fin (Nat.succ (IsAdmissible.card h Ξ΅ ^ Nat.succ n)) β†’ Fin (Nat.succ n) β†’ R

M:= IsAdmissible.card h Ξ΅: β„•

t: Fin (Nat.succ (M ^ Nat.succ n)) β†’ Fin M

ht: βˆ€ (iβ‚€ i₁ : Fin (Nat.succ (M ^ Nat.succ n))), t iβ‚€ = t i₁ β†’ ↑(↑abv (A i₁ 0 % b - A iβ‚€ 0 % b)) < ↑abv b β€’ Ξ΅

s: Fin M

hs: M ^ n < Finset.card (Finset.filter (fun x => t x = s) Finset.univ)

i: Fin (Nat.succ (M ^ n))


intro.intro.refine'_1
↑i < List.length (Finset.toList (Finset.filter (fun x => t x = s) Finset.univ))
R: Type u_1

inst✝: EuclideanDomain R

abv: AbsoluteValue R β„€

h: IsAdmissible abv

this: DecidableEq R

n: β„•

ih: βˆ€ {Ξ΅ : ℝ}, 0 < Ξ΅ β†’ βˆ€ {b : R}, b β‰  0 β†’ βˆ€ (A : Fin (Nat.succ (IsAdmissible.card h Ξ΅ ^ n)) β†’ Fin n β†’ R), βˆƒ iβ‚€ i₁, iβ‚€ β‰  i₁ ∧ βˆ€ (k : Fin n), ↑(↑abv (A i₁ k % b - A iβ‚€ k % b)) < ↑abv b β€’ Ξ΅

Ξ΅: ℝ

hΞ΅: 0 < Ξ΅

b: R

hb: b β‰  0

A: Fin (Nat.succ (IsAdmissible.card h Ξ΅ ^ Nat.succ n)) β†’ Fin (Nat.succ n) β†’ R

M:= IsAdmissible.card h Ξ΅: β„•

t: Fin (Nat.succ (M ^ Nat.succ n)) β†’ Fin M

ht: βˆ€ (iβ‚€ i₁ : Fin (Nat.succ (M ^ Nat.succ n))), t iβ‚€ = t i₁ β†’ ↑(↑abv (A i₁ 0 % b - A iβ‚€ 0 % b)) < ↑abv b β€’ Ξ΅

s: Fin M

hs: M ^ n < Finset.card (Finset.filter (fun x => t x = s) Finset.univ)

i: Fin (Nat.succ (M ^ n))


intro.intro.refine'_1
Nat.succ (M ^ n) ≀ List.length (Finset.toList (Finset.filter (fun x => t x = s) Finset.univ))
R: Type u_1

inst✝: EuclideanDomain R

abv: AbsoluteValue R β„€

h: IsAdmissible abv

this: DecidableEq R

n: β„•

ih: βˆ€ {Ξ΅ : ℝ}, 0 < Ξ΅ β†’ βˆ€ {b : R}, b β‰  0 β†’ βˆ€ (A : Fin (Nat.succ (IsAdmissible.card h Ξ΅ ^ n)) β†’ Fin n β†’ R), βˆƒ iβ‚€ i₁, iβ‚€ β‰  i₁ ∧ βˆ€ (k : Fin n), ↑(↑abv (A i₁ k % b - A iβ‚€ k % b)) < ↑abv b β€’ Ξ΅

Ξ΅: ℝ

hΞ΅: 0 < Ξ΅

b: R

hb: b β‰  0

A: Fin (Nat.succ (IsAdmissible.card h Ξ΅ ^ Nat.succ n)) β†’ Fin (Nat.succ n) β†’ R

M:= IsAdmissible.card h Ξ΅: β„•

t: Fin (Nat.succ (M ^ Nat.succ n)) β†’ Fin M

ht: βˆ€ (iβ‚€ i₁ : Fin (Nat.succ (M ^ Nat.succ n))), t iβ‚€ = t i₁ β†’ ↑(↑abv (A i₁ 0 % b - A iβ‚€ 0 % b)) < ↑abv b β€’ Ξ΅

s: Fin M

hs: M ^ n < Finset.card (Finset.filter (fun x => t x = s) Finset.univ)

i: Fin (Nat.succ (M ^ n))


intro.intro.refine'_1
Nat.succ (M ^ n) ≀ Finset.card (Finset.filter (fun x => t x = s) Finset.univ)
R: Type u_1

inst✝: EuclideanDomain R

abv: AbsoluteValue R β„€

h: IsAdmissible abv

this: DecidableEq R

n: β„•

ih: βˆ€ {Ξ΅ : ℝ}, 0 < Ξ΅ β†’ βˆ€ {b : R}, b β‰  0 β†’ βˆ€ (A : Fin (Nat.succ (IsAdmissible.card h Ξ΅ ^ n)) β†’ Fin n β†’ R), βˆƒ iβ‚€ i₁, iβ‚€ β‰  i₁ ∧ βˆ€ (k : Fin n), ↑(↑abv (A i₁ k % b - A iβ‚€ k % b)) < ↑abv b β€’ Ξ΅

Ξ΅: ℝ

hΞ΅: 0 < Ξ΅

b: R

hb: b β‰  0

A: Fin (Nat.succ (IsAdmissible.card h Ξ΅ ^ Nat.succ n)) β†’ Fin (Nat.succ n) β†’ R

M:= IsAdmissible.card h Ξ΅: β„•

t: Fin (Nat.succ (M ^ Nat.succ n)) β†’ Fin M

ht: βˆ€ (iβ‚€ i₁ : Fin (Nat.succ (M ^ Nat.succ n))), t iβ‚€ = t i₁ β†’ ↑(↑abv (A i₁ 0 % b - A iβ‚€ 0 % b)) < ↑abv b β€’ Ξ΅

s: Fin M

hs: M ^ n < Finset.card (Finset.filter (fun x => t x = s) Finset.univ)

i: Fin (Nat.succ (M ^ n))


intro.intro.refine'_1
Nat.succ (M ^ n) ≀ Finset.card (Finset.filter (fun x => t x = s) Finset.univ)
R: Type u_1

inst✝: EuclideanDomain R

abv: AbsoluteValue R β„€

h: IsAdmissible abv

this: DecidableEq R

n: β„•

ih: βˆ€ {Ξ΅ : ℝ}, 0 < Ξ΅ β†’ βˆ€ {b : R}, b β‰  0 β†’ βˆ€ (A : Fin (Nat.succ (IsAdmissible.card h Ξ΅ ^ n)) β†’ Fin n β†’ R), βˆƒ iβ‚€ i₁, iβ‚€ β‰  i₁ ∧ βˆ€ (k : Fin n), ↑(↑abv (A i₁ k % b - A iβ‚€ k % b)) < ↑abv b β€’ Ξ΅

Ξ΅: ℝ

hΞ΅: 0 < Ξ΅

b: R

hb: b β‰  0

A: Fin (Nat.succ (IsAdmissible.card h Ξ΅ ^ Nat.succ n)) β†’ Fin (Nat.succ n) β†’ R

M:= IsAdmissible.card h Ξ΅: β„•


βˆƒ s, Function.Injective s ∧ βˆ€ (iβ‚€ i₁ : Fin (Nat.succ (M ^ n))), ↑(↑abv (A (s i₁) 0 % b - A (s iβ‚€) 0 % b)) < ↑abv b β€’ Ξ΅
R: Type u_1

inst✝: EuclideanDomain R

abv: AbsoluteValue R β„€

h: IsAdmissible abv

this: DecidableEq R

n: β„•

ih: βˆ€ {Ξ΅ : ℝ}, 0 < Ξ΅ β†’ βˆ€ {b : R}, b β‰  0 β†’ βˆ€ (A : Fin (Nat.succ (IsAdmissible.card h Ξ΅ ^ n)) β†’ Fin n β†’ R), βˆƒ iβ‚€ i₁, iβ‚€ β‰  i₁ ∧ βˆ€ (k : Fin n), ↑(↑abv (A i₁ k % b - A iβ‚€ k % b)) < ↑abv b β€’ Ξ΅

Ξ΅: ℝ

hΞ΅: 0 < Ξ΅

b: R

hb: b β‰  0

A: Fin (Nat.succ (IsAdmissible.card h Ξ΅ ^ Nat.succ n)) β†’ Fin (Nat.succ n) β†’ R

M:= IsAdmissible.card h Ξ΅: β„•

t: Fin (Nat.succ (M ^ Nat.succ n)) β†’ Fin M

ht: βˆ€ (iβ‚€ i₁ : Fin (Nat.succ (M ^ Nat.succ n))), t iβ‚€ = t i₁ β†’ ↑(↑abv (A i₁ 0 % b - A iβ‚€ 0 % b)) < ↑abv b β€’ Ξ΅

s: Fin M

hs: M ^ n < Finset.card (Finset.filter (fun x => t x = s) Finset.univ)


intro.intro.refine'_2
Function.Injective fun i => List.nthLe (Finset.toList (Finset.filter (fun x => t x = s) Finset.univ)) ↑i (_ : ↑i < List.length (Finset.toList (Finset.filter (fun x => t x = s) Finset.univ)))
R: Type u_1

inst✝: EuclideanDomain R

abv: AbsoluteValue R β„€

h: IsAdmissible abv

this: DecidableEq R

n: β„•

ih: βˆ€ {Ξ΅ : ℝ}, 0 < Ξ΅ β†’ βˆ€ {b : R}, b β‰  0 β†’ βˆ€ (A : Fin (Nat.succ (IsAdmissible.card h Ξ΅ ^ n)) β†’ Fin n β†’ R), βˆƒ iβ‚€ i₁, iβ‚€ β‰  i₁ ∧ βˆ€ (k : Fin n), ↑(↑abv (A i₁ k % b - A iβ‚€ k % b)) < ↑abv b β€’ Ξ΅

Ξ΅: ℝ

hΞ΅: 0 < Ξ΅

b: R

hb: b β‰  0

A: Fin (Nat.succ (IsAdmissible.card h Ξ΅ ^ Nat.succ n)) β†’ Fin (Nat.succ n) β†’ R

M:= IsAdmissible.card h Ξ΅: β„•

t: Fin (Nat.succ (M ^ Nat.succ n)) β†’ Fin M

ht: βˆ€ (iβ‚€ i₁ : Fin (Nat.succ (M ^ Nat.succ n))), t iβ‚€ = t i₁ β†’ ↑(↑abv (A i₁ 0 % b - A iβ‚€ 0 % b)) < ↑abv b β€’ Ξ΅

s: Fin M

hs: M ^ n < Finset.card (Finset.filter (fun x => t x = s) Finset.univ)


intro.intro.refine'_2
Function.Injective fun i => List.nthLe (Finset.toList (Finset.filter (fun x => t x = s) Finset.univ)) ↑i (_ : ↑i < List.length (Finset.toList (Finset.filter (fun x => t x = s) Finset.univ)))
R: Type u_1

inst✝: EuclideanDomain R

abv: AbsoluteValue R β„€

h: IsAdmissible abv

this: DecidableEq R

n: β„•

ih: βˆ€ {Ξ΅ : ℝ}, 0 < Ξ΅ β†’ βˆ€ {b : R}, b β‰  0 β†’ βˆ€ (A : Fin (Nat.succ (IsAdmissible.card h Ξ΅ ^ n)) β†’ Fin n β†’ R), βˆƒ iβ‚€ i₁, iβ‚€ β‰  i₁ ∧ βˆ€ (k : Fin n), ↑(↑abv (A i₁ k % b - A iβ‚€ k % b)) < ↑abv b β€’ Ξ΅

Ξ΅: ℝ

hΞ΅: 0 < Ξ΅

b: R

hb: b β‰  0

A: Fin (Nat.succ (IsAdmissible.card h Ξ΅ ^ Nat.succ n)) β†’ Fin (Nat.succ n) β†’ R

M:= IsAdmissible.card h Ξ΅: β„•

t: Fin (Nat.succ (M ^ Nat.succ n)) β†’ Fin M

ht: βˆ€ (iβ‚€ i₁ : Fin (Nat.succ (M ^ Nat.succ n))), t iβ‚€ = t i₁ β†’ ↑(↑abv (A i₁ 0 % b - A iβ‚€ 0 % b)) < ↑abv b β€’ Ξ΅

s: Fin M

hs: M ^ n < Finset.card (Finset.filter (fun x => t x = s) Finset.univ)

iβ‚€, i₁: Fin (Nat.succ (M ^ n))


intro.intro.refine'_3
t ((fun i => List.nthLe (Finset.toList (Finset.filter (fun x => t x = s) Finset.univ)) ↑i (_ : ↑i < List.length (Finset.toList (Finset.filter (fun x => t x = s) Finset.univ)))) iβ‚€) = t ((fun i => List.nthLe (Finset.toList (Finset.filter (fun x => t x = s) Finset.univ)) ↑i (_ : ↑i < List.length (Finset.toList (Finset.filter (fun x => t x = s) Finset.univ)))) i₁)
R: Type u_1

inst✝: EuclideanDomain R

abv: AbsoluteValue R β„€

h✝: IsAdmissible abv

this: DecidableEq R

n: β„•

ih: βˆ€ {Ξ΅ : ℝ}, 0 < Ξ΅ β†’ βˆ€ {b : R}, b β‰  0 β†’ βˆ€ (A : Fin (Nat.succ (IsAdmissible.card h✝ Ξ΅ ^ n)) β†’ Fin n β†’ R), βˆƒ iβ‚€ i₁, iβ‚€ β‰  i₁ ∧ βˆ€ (k : Fin n), ↑(↑abv (A i₁ k % b - A iβ‚€ k % b)) < ↑abv b β€’ Ξ΅

Ξ΅: ℝ

hΞ΅: 0 < Ξ΅

b: R

hb: b β‰  0

A: Fin (Nat.succ (IsAdmissible.card h✝ Ξ΅ ^ Nat.succ n)) β†’ Fin (Nat.succ n) β†’ R

M:= IsAdmissible.card h✝ Ξ΅: β„•

t: Fin (Nat.succ (M ^ Nat.succ n)) β†’ Fin M

ht: βˆ€ (iβ‚€ i₁ : Fin (Nat.succ (M ^ Nat.succ n))), t iβ‚€ = t i₁ β†’ ↑(↑abv (A i₁ 0 % b - A iβ‚€ 0 % b)) < ↑abv b β€’ Ξ΅

s: Fin M

hs: M ^ n < Finset.card (Finset.filter (fun x => t x = s) Finset.univ)

i, j: Fin (Nat.succ (M ^ n))

h: (fun i => List.nthLe (Finset.toList (Finset.filter (fun x => t x = s) Finset.univ)) ↑i (_ : ↑i < List.length (Finset.toList (Finset.filter (fun x => t x = s) Finset.univ)))) i = (fun i => List.nthLe (Finset.toList (Finset.filter (fun x => t x = s) Finset.univ)) ↑i (_ : ↑i < List.length (Finset.toList (Finset.filter (fun x => t x = s) Finset.univ)))) j


intro.intro.refine'_2
i = j
R: Type u_1

inst✝: EuclideanDomain R

abv: AbsoluteValue R β„€

h: IsAdmissible abv

this: DecidableEq R

n: β„•

ih: βˆ€ {Ξ΅ : ℝ}, 0 < Ξ΅ β†’ βˆ€ {b : R}, b β‰  0 β†’ βˆ€ (A : Fin (Nat.succ (IsAdmissible.card h Ξ΅ ^ n)) β†’ Fin n β†’ R), βˆƒ iβ‚€ i₁, iβ‚€ β‰  i₁ ∧ βˆ€ (k : Fin n), ↑(↑abv (A i₁ k % b - A iβ‚€ k % b)) < ↑abv b β€’ Ξ΅

Ξ΅: ℝ

hΞ΅: 0 < Ξ΅

b: R

hb: b β‰  0

A: Fin (Nat.succ (IsAdmissible.card h Ξ΅ ^ Nat.succ n)) β†’ Fin (Nat.succ n) β†’ R

M:= IsAdmissible.card h Ξ΅: β„•

t: Fin (Nat.succ (M ^ Nat.succ n)) β†’ Fin M

ht: βˆ€ (iβ‚€ i₁ : Fin (Nat.succ (M ^ Nat.succ n))), t iβ‚€ = t i₁ β†’ ↑(↑abv (A i₁ 0 % b - A iβ‚€ 0 % b)) < ↑abv b β€’ Ξ΅

s: Fin M

hs: M ^ n < Finset.card (Finset.filter (fun x => t x = s) Finset.univ)


intro.intro.refine'_2
Function.Injective fun i => List.nthLe (Finset.toList (Finset.filter (fun x => t x = s) Finset.univ)) ↑i (_ : ↑i < List.length (Finset.toList (Finset.filter (fun x => t x = s) Finset.univ)))
R: Type u_1

inst✝: EuclideanDomain R

abv: AbsoluteValue R β„€

h✝: IsAdmissible abv

this: DecidableEq R

n: β„•

ih: βˆ€ {Ξ΅ : ℝ}, 0 < Ξ΅ β†’ βˆ€ {b : R}, b β‰  0 β†’ βˆ€ (A : Fin (Nat.succ (IsAdmissible.card h✝ Ξ΅ ^ n)) β†’ Fin n β†’ R), βˆƒ iβ‚€ i₁, iβ‚€ β‰  i₁ ∧ βˆ€ (k : Fin n), ↑(↑abv (A i₁ k % b - A iβ‚€ k % b)) < ↑abv b β€’ Ξ΅

Ξ΅: ℝ

hΞ΅: 0 < Ξ΅

b: R

hb: b β‰  0

A: Fin (Nat.succ (IsAdmissible.card h✝ Ξ΅ ^ Nat.succ n)) β†’ Fin (Nat.succ n) β†’ R

M:= IsAdmissible.card h✝ Ξ΅: β„•

t: Fin (Nat.succ (M ^ Nat.succ n)) β†’ Fin M

ht: βˆ€ (iβ‚€ i₁ : Fin (Nat.succ (M ^ Nat.succ n))), t iβ‚€ = t i₁ β†’ ↑(↑abv (A i₁ 0 % b - A iβ‚€ 0 % b)) < ↑abv b β€’ Ξ΅

s: Fin M

hs: M ^ n < Finset.card (Finset.filter (fun x => t x = s) Finset.univ)

i, j: Fin (Nat.succ (M ^ n))

h: (fun i => List.nthLe (Finset.toList (Finset.filter (fun x => t x = s) Finset.univ)) ↑i (_ : ↑i < List.length (Finset.toList (Finset.filter (fun x => t x = s) Finset.univ)))) i = (fun i => List.nthLe (Finset.toList (Finset.filter (fun x => t x = s) Finset.univ)) ↑i (_ : ↑i < List.length (Finset.toList (Finset.filter (fun x => t x = s) Finset.univ)))) j


intro.intro.refine'_2.h
↑i = ↑j
R: Type u_1

inst✝: EuclideanDomain R

abv: AbsoluteValue R β„€

h: IsAdmissible abv

this: DecidableEq R

n: β„•

ih: βˆ€ {Ξ΅ : ℝ}, 0 < Ξ΅ β†’ βˆ€ {b : R}, b β‰  0 β†’ βˆ€ (A : Fin (Nat.succ (IsAdmissible.card h Ξ΅ ^ n)) β†’ Fin n β†’ R), βˆƒ iβ‚€ i₁, iβ‚€ β‰  i₁ ∧ βˆ€ (k : Fin n), ↑(↑abv (A i₁ k % b - A iβ‚€ k % b)) < ↑abv b β€’ Ξ΅

Ξ΅: ℝ

hΞ΅: 0 < Ξ΅

b: R

hb: b β‰  0

A: Fin (Nat.succ (IsAdmissible.card h Ξ΅ ^ Nat.succ n)) β†’ Fin (Nat.succ n) β†’ R

M:= IsAdmissible.card h Ξ΅: β„•

t: Fin (Nat.succ (M ^ Nat.succ n)) β†’ Fin M

ht: βˆ€ (iβ‚€ i₁ : Fin (Nat.succ (M ^ Nat.succ n))), t iβ‚€ = t i₁ β†’ ↑(↑abv (A i₁ 0 % b - A iβ‚€ 0 % b)) < ↑abv b β€’ Ξ΅

s: Fin M

hs: M ^ n < Finset.card (Finset.filter (fun x => t x = s) Finset.univ)


intro.intro.refine'_2
Function.Injective fun i => List.nthLe (Finset.toList (Finset.filter (fun x => t x = s) Finset.univ)) ↑i (_ : ↑i < List.length (Finset.toList (Finset.filter (fun x => t x = s) Finset.univ)))

Goals accomplished! πŸ™
R: Type u_1

inst✝: EuclideanDomain R

abv: AbsoluteValue R β„€

h: IsAdmissible abv

this: DecidableEq R

n: β„•

ih: βˆ€ {Ξ΅ : ℝ}, 0 < Ξ΅ β†’ βˆ€ {b : R}, b β‰  0 β†’ βˆ€ (A : Fin (Nat.succ (IsAdmissible.card h Ξ΅ ^ n)) β†’ Fin n β†’ R), βˆƒ iβ‚€ i₁, iβ‚€ β‰  i₁ ∧ βˆ€ (k : Fin n), ↑(↑abv (A i₁ k % b - A iβ‚€ k % b)) < ↑abv b β€’ Ξ΅

Ξ΅: ℝ

hΞ΅: 0 < Ξ΅

b: R

hb: b β‰  0

A: Fin (Nat.succ (IsAdmissible.card h Ξ΅ ^ Nat.succ n)) β†’ Fin (Nat.succ n) β†’ R

M:= IsAdmissible.card h Ξ΅: β„•


βˆƒ s, Function.Injective s ∧ βˆ€ (iβ‚€ i₁ : Fin (Nat.succ (M ^ n))), ↑(↑abv (A (s i₁) 0 % b - A (s iβ‚€) 0 % b)) < ↑abv b β€’ Ξ΅
R: Type u_1

inst✝: EuclideanDomain R

abv: AbsoluteValue R β„€

h: IsAdmissible abv

this: DecidableEq R

n: β„•

ih: βˆ€ {Ξ΅ : ℝ}, 0 < Ξ΅ β†’ βˆ€ {b : R}, b β‰  0 β†’ βˆ€ (A : Fin (Nat.succ (IsAdmissible.card h Ξ΅ ^ n)) β†’ Fin n β†’ R), βˆƒ iβ‚€ i₁, iβ‚€ β‰  i₁ ∧ βˆ€ (k : Fin n), ↑(↑abv (A i₁ k % b - A iβ‚€ k % b)) < ↑abv b β€’ Ξ΅

Ξ΅: ℝ

hΞ΅: 0 < Ξ΅

b: R

hb: b β‰  0

A: Fin (Nat.succ (IsAdmissible.card h Ξ΅ ^ Nat.succ n)) β†’ Fin (Nat.succ n) β†’ R

M:= IsAdmissible.card h Ξ΅: β„•

t: Fin (Nat.succ (M ^ Nat.succ n)) β†’ Fin M

ht: βˆ€ (iβ‚€ i₁ : Fin (Nat.succ (M ^ Nat.succ n))), t iβ‚€ = t i₁ β†’ ↑(↑abv (A i₁ 0 % b - A iβ‚€ 0 % b)) < ↑abv b β€’ Ξ΅

s: Fin M

hs: M ^ n < Finset.card (Finset.filter (fun x => t x = s) Finset.univ)

iβ‚€, i₁: Fin (Nat.succ (M ^ n))


intro.intro.refine'_3
t ((fun i => List.nthLe (Finset.toList (Finset.filter (fun x => t x = s) Finset.univ)) ↑i (_ : ↑i < List.length (Finset.toList (Finset.filter (fun x => t x = s) Finset.univ)))) iβ‚€) = t ((fun i => List.nthLe (Finset.toList (Finset.filter (fun x => t x = s) Finset.univ)) ↑i (_ : ↑i < List.length (Finset.toList (Finset.filter (fun x => t x = s) Finset.univ)))) i₁)

Goals accomplished! πŸ™
R: Type u_1

inst✝: EuclideanDomain R

abv: AbsoluteValue R β„€

h: IsAdmissible abv

this: DecidableEq R

n: β„•

ih: βˆ€ {Ξ΅ : ℝ}, 0 < Ξ΅ β†’ βˆ€ {b : R}, b β‰  0 β†’ βˆ€ (A : Fin (Nat.succ (IsAdmissible.card h Ξ΅ ^ n)) β†’ Fin n β†’ R), βˆƒ iβ‚€ i₁, iβ‚€ β‰  i₁ ∧ βˆ€ (k : Fin n), ↑(↑abv (A i₁ k % b - A iβ‚€ k % b)) < ↑abv b β€’ Ξ΅

Ξ΅: ℝ

hΞ΅: 0 < Ξ΅

b: R

hb: b β‰  0

A: Fin (Nat.succ (IsAdmissible.card h Ξ΅ ^ Nat.succ n)) β†’ Fin (Nat.succ n) β†’ R

M:= IsAdmissible.card h Ξ΅: β„•

t: Fin (Nat.succ (M ^ Nat.succ n)) β†’ Fin M

ht: βˆ€ (iβ‚€ i₁ : Fin (Nat.succ (M ^ Nat.succ n))), t iβ‚€ = t i₁ β†’ ↑(↑abv (A i₁ 0 % b - A iβ‚€ 0 % b)) < ↑abv b β€’ Ξ΅

s: Fin M

hs: M ^ n < Finset.card (Finset.filter (fun x => t x = s) Finset.univ)

iβ‚€, i₁: Fin (Nat.succ (M ^ n))


βˆ€ (i : β„•) (h : i < List.length (Finset.toList (Finset.filter (fun x => t x = s) Finset.univ))), List.nthLe (Finset.toList (Finset.filter (fun x => t x = s) Finset.univ)) i h ∈ Finset.filter (fun x => t x = s) Finset.univ
R: Type u_1

inst✝: EuclideanDomain R

abv: AbsoluteValue R β„€

h✝: IsAdmissible abv

this: DecidableEq R

n: β„•

ih: βˆ€ {Ξ΅ : ℝ}, 0 < Ξ΅ β†’ βˆ€ {b : R}, b β‰  0 β†’ βˆ€ (A : Fin (Nat.succ (IsAdmissible.card h✝ Ξ΅ ^ n)) β†’ Fin n β†’ R), βˆƒ iβ‚€ i₁, iβ‚€ β‰  i₁ ∧ βˆ€ (k : Fin n), ↑(↑abv (A i₁ k % b - A iβ‚€ k % b)) < ↑abv b β€’ Ξ΅

Ξ΅: ℝ

hΞ΅: 0 < Ξ΅

b: R

hb: b β‰  0

A: Fin (Nat.succ (IsAdmissible.card h✝ Ξ΅ ^ Nat.succ n)) β†’ Fin (Nat.succ n) β†’ R

M:= IsAdmissible.card h✝ Ξ΅: β„•

t: Fin (Nat.succ (M ^ Nat.succ n)) β†’ Fin M

ht: βˆ€ (iβ‚€ i₁ : Fin (Nat.succ (M ^ Nat.succ n))), t iβ‚€ = t i₁ β†’ ↑(↑abv (A i₁ 0 % b - A iβ‚€ 0 % b)) < ↑abv b β€’ Ξ΅

s: Fin M

hs: M ^ n < Finset.card (Finset.filter (fun x => t x = s) Finset.univ)

iβ‚€, i₁: Fin (Nat.succ (M ^ n))

i: β„•

h: i < List.length (Finset.toList (Finset.filter (fun x => t x = s) Finset.univ))


List.nthLe (Finset.toList (Finset.filter (fun x => t x = s) Finset.univ)) i h ∈ Finset.filter (fun x => t x = s) Finset.univ
R: Type u_1

inst✝: EuclideanDomain R

abv: AbsoluteValue R β„€

h: IsAdmissible abv

this: DecidableEq R

n: β„•

ih: βˆ€ {Ξ΅ : ℝ}, 0 < Ξ΅ β†’ βˆ€ {b : R}, b β‰  0 β†’ βˆ€ (A : Fin (Nat.succ (IsAdmissible.card h Ξ΅ ^ n)) β†’ Fin n β†’ R), βˆƒ iβ‚€ i₁, iβ‚€ β‰  i₁ ∧ βˆ€ (k : Fin n), ↑(↑abv (A i₁ k % b - A iβ‚€ k % b)) < ↑abv b β€’ Ξ΅

Ξ΅: ℝ

hΞ΅: 0 < Ξ΅

b: R

hb: b β‰  0

A: Fin (Nat.succ (IsAdmissible.card h Ξ΅ ^ Nat.succ n)) β†’ Fin (Nat.succ n) β†’ R

M:= IsAdmissible.card h Ξ΅: β„•

t: Fin (Nat.succ (M ^ Nat.succ n)) β†’ Fin M

ht: βˆ€ (iβ‚€ i₁ : Fin (Nat.succ (M ^ Nat.succ n))), t iβ‚€ = t i₁ β†’ ↑(↑abv (A i₁ 0 % b - A iβ‚€ 0 % b)) < ↑abv b β€’ Ξ΅

s: Fin M

hs: M ^ n < Finset.card (Finset.filter (fun x => t x = s) Finset.univ)

iβ‚€, i₁: Fin (Nat.succ (M ^ n))


βˆ€ (i : β„•) (h : i < List.length (Finset.toList (Finset.filter (fun x => t x = s) Finset.univ))), List.nthLe (Finset.toList (Finset.filter (fun x => t x = s) Finset.univ)) i h ∈ Finset.filter (fun x => t x = s) Finset.univ

Goals accomplished! πŸ™
R: Type u_1

inst✝: EuclideanDomain R

abv: AbsoluteValue R β„€

h: IsAdmissible abv

this: DecidableEq R

n: β„•

ih: βˆ€ {Ξ΅ : ℝ}, 0 < Ξ΅ β†’ βˆ€ {b : R}, b β‰  0 β†’ βˆ€ (A : Fin (Nat.succ (IsAdmissible.card h Ξ΅ ^ n)) β†’ Fin n β†’ R), βˆƒ iβ‚€ i₁, iβ‚€ β‰  i₁ ∧ βˆ€ (k : Fin n), ↑(↑abv (A i₁ k % b - A iβ‚€ k % b)) < ↑abv b β€’ Ξ΅

Ξ΅: ℝ

hΞ΅: 0 < Ξ΅

b: R

hb: b β‰  0

A: Fin (Nat.succ (IsAdmissible.card h Ξ΅ ^ Nat.succ n)) β†’ Fin (Nat.succ n) β†’ R

M:= IsAdmissible.card h Ξ΅: β„•


βˆƒ s, Function.Injective s ∧ βˆ€ (iβ‚€ i₁ : Fin (Nat.succ (M ^ n))), ↑(↑abv (A (s i₁) 0 % b - A (s iβ‚€) 0 % b)) < ↑abv b β€’ Ξ΅
R: Type u_1

inst✝: EuclideanDomain R

abv: AbsoluteValue R β„€

h: IsAdmissible abv

this✝: DecidableEq R

n: β„•

ih: βˆ€ {Ξ΅ : ℝ}, 0 < Ξ΅ β†’ βˆ€ {b : R}, b β‰  0 β†’ βˆ€ (A : Fin (Nat.succ (IsAdmissible.card h Ξ΅ ^ n)) β†’ Fin n β†’ R), βˆƒ iβ‚€ i₁, iβ‚€ β‰  i₁ ∧ βˆ€ (k : Fin n), ↑(↑abv (A i₁ k % b - A iβ‚€ k % b)) < ↑abv b β€’ Ξ΅

Ξ΅: ℝ

hΞ΅: 0 < Ξ΅

b: R

hb: b β‰  0

A: Fin (Nat.succ (IsAdmissible.card h Ξ΅ ^ Nat.succ n)) β†’ Fin (Nat.succ n) β†’ R

M:= IsAdmissible.card h Ξ΅: β„•

t: Fin (Nat.succ (M ^ Nat.succ n)) β†’ Fin M

ht: βˆ€ (iβ‚€ i₁ : Fin (Nat.succ (M ^ Nat.succ n))), t iβ‚€ = t i₁ β†’ ↑(↑abv (A i₁ 0 % b - A iβ‚€ 0 % b)) < ↑abv b β€’ Ξ΅

s: Fin M

hs: M ^ n < Finset.card (Finset.filter (fun x => t x = s) Finset.univ)

iβ‚€, i₁: Fin (Nat.succ (M ^ n))

this: βˆ€ (i : β„•) (h : i < List.length (Finset.toList (Finset.filter (fun x => t x = s) Finset.univ))), List.nthLe (Finset.toList (Finset.filter (fun x => t x = s) Finset.univ)) i h ∈ Finset.filter (fun x => t x = s) Finset.univ

left✝: List.nthLe (Finset.toList (Finset.filter (fun x => t x = s) Finset.univ)) ↑iβ‚€ ?m.75293 ∈ Finset.univ

hβ‚€: t (List.nthLe (Finset.toList (Finset.filter (fun x => t x = s) Finset.univ)) ↑iβ‚€ ?m.75293) = s


intro.intro.refine'_3.intro
t ((fun i => List.nthLe (Finset.toList (Finset.filter (fun x => t x = s) Finset.univ)) ↑i (_ : ↑i < List.length (Finset.toList (Finset.filter (fun x => t x = s) Finset.univ)))) iβ‚€) = t ((fun i => List.nthLe (Finset.toList (Finset.filter (fun x => t x = s) Finset.univ)) ↑i (_ : ↑i < List.length (Finset.toList (Finset.filter (fun x => t x = s) Finset.univ)))) i₁)
R: Type u_1

inst✝: EuclideanDomain R

abv: AbsoluteValue R β„€

h: IsAdmissible abv

this: DecidableEq R

n: β„•

ih: βˆ€ {Ξ΅ : ℝ}, 0 < Ξ΅ β†’ βˆ€ {b : R}, b β‰  0 β†’ βˆ€ (A : Fin (Nat.succ (IsAdmissible.card h Ξ΅ ^ n)) β†’ Fin n β†’ R), βˆƒ iβ‚€ i₁, iβ‚€ β‰  i₁ ∧ βˆ€ (k : Fin n), ↑(↑abv (A i₁ k % b - A iβ‚€ k % b)) < ↑abv b β€’ Ξ΅

Ξ΅: ℝ

hΞ΅: 0 < Ξ΅

b: R

hb: b β‰  0

A: Fin (Nat.succ (IsAdmissible.card h Ξ΅ ^ Nat.succ n)) β†’ Fin (Nat.succ n) β†’ R

M:= IsAdmissible.card h Ξ΅: β„•


βˆƒ s, Function.Injective s ∧ βˆ€ (iβ‚€ i₁ : Fin (Nat.succ (M ^ n))), ↑(↑abv (A (s i₁) 0 % b - A (s iβ‚€) 0 % b)) < ↑abv b β€’ Ξ΅
R: Type u_1

inst✝: EuclideanDomain R

abv: AbsoluteValue R β„€

h: IsAdmissible abv

this✝: DecidableEq R

n: β„•

ih: βˆ€ {Ξ΅ : ℝ}, 0 < Ξ΅ β†’ βˆ€ {b : R}, b β‰  0 β†’ βˆ€ (A : Fin (Nat.succ (IsAdmissible.card h Ξ΅ ^ n)) β†’ Fin n β†’ R), βˆƒ iβ‚€ i₁, iβ‚€ β‰  i₁ ∧ βˆ€ (k : Fin n), ↑(↑abv (A i₁ k % b - A iβ‚€ k % b)) < ↑abv b β€’ Ξ΅

Ξ΅: ℝ

hΞ΅: 0 < Ξ΅

b: R

hb: b β‰  0

A: Fin (Nat.succ (IsAdmissible.card h Ξ΅ ^ Nat.succ n)) β†’ Fin (Nat.succ n) β†’ R

M:= IsAdmissible.card h Ξ΅: β„•

t: Fin (Nat.succ (M ^ Nat.succ n)) β†’ Fin M

ht: βˆ€ (iβ‚€ i₁ : Fin (Nat.succ (M ^ Nat.succ n))), t iβ‚€ = t i₁ β†’ ↑(↑abv (A i₁ 0 % b - A iβ‚€ 0 % b)) < ↑abv b β€’ Ξ΅

s: Fin M

hs: M ^ n < Finset.card (Finset.filter (fun x => t x = s) Finset.univ)

iβ‚€, i₁: Fin (Nat.succ (M ^ n))

this: βˆ€ (i : β„•) (h : i < List.length (Finset.toList (Finset.filter (fun x => t x = s) Finset.univ))), List.nthLe (Finset.toList (Finset.filter (fun x => t x = s) Finset.univ)) i h ∈ Finset.filter (fun x => t x = s) Finset.univ

left✝¹: List.nthLe (Finset.toList (Finset.filter (fun x => t x = s) Finset.univ)) ↑iβ‚€ ?m.75293 ∈ Finset.univ

hβ‚€: t (List.nthLe (Finset.toList (Finset.filter (fun x => t x = s) Finset.univ)) ↑iβ‚€ ?m.75293) = s

left✝: List.nthLe (Finset.toList (Finset.filter (fun x => t x = s) Finset.univ)) ↑i₁ ?m.75655 ∈ Finset.univ

h₁: t (List.nthLe (Finset.toList (Finset.filter (fun x => t x = s) Finset.univ)) ↑i₁ ?m.75655) = s


intro.intro.refine'_3.intro.intro
t ((fun i => List.nthLe (Finset.toList (Finset.filter (fun x => t x = s) Finset.univ)) ↑i (_ : ↑i < List.length (Finset.toList (Finset.filter (fun x => t x = s) Finset.univ)))) iβ‚€) = t ((fun i => List.nthLe (Finset.toList (Finset.filter (fun x => t x = s) Finset.univ)) ↑i (_ : ↑i < List.length (Finset.toList (Finset.filter (fun x => t x = s) Finset.univ)))) i₁)
R: Type u_1

inst✝: EuclideanDomain R

abv: AbsoluteValue R β„€

h: IsAdmissible abv

this: DecidableEq R

n: β„•

ih: βˆ€ {Ξ΅ : ℝ}, 0 < Ξ΅ β†’ βˆ€ {b : R}, b β‰  0 β†’ βˆ€ (A : Fin (Nat.succ (IsAdmissible.card h Ξ΅ ^ n)) β†’ Fin n β†’ R), βˆƒ iβ‚€ i₁, iβ‚€ β‰  i₁ ∧ βˆ€ (k : Fin n), ↑(↑abv (A i₁ k % b - A iβ‚€ k % b)) < ↑abv b β€’ Ξ΅

Ξ΅: ℝ

hΞ΅: 0 < Ξ΅

b: R

hb: b β‰  0

A: Fin (Nat.succ (IsAdmissible.card h Ξ΅ ^ Nat.succ n)) β†’ Fin (Nat.succ n) β†’ R

M:= IsAdmissible.card h Ξ΅: β„•


βˆƒ s, Function.Injective s ∧ βˆ€ (iβ‚€ i₁ : Fin (Nat.succ (M ^ n))), ↑(↑abv (A (s i₁) 0 % b - A (s iβ‚€) 0 % b)) < ↑abv b β€’ Ξ΅

Goals accomplished! πŸ™
R: Type u_1

inst✝: EuclideanDomain R

abv: AbsoluteValue R β„€

n: β„•

h: IsAdmissible abv


βˆ€ {Ξ΅ : ℝ}, 0 < Ξ΅ β†’ βˆ€ {b : R}, b β‰  0 β†’ βˆ€ (A : Fin (Nat.succ (IsAdmissible.card h Ξ΅ ^ n)) β†’ Fin n β†’ R), βˆƒ iβ‚€ i₁, iβ‚€ β‰  i₁ ∧ βˆ€ (k : Fin n), ↑(↑abv (A i₁ k % b - A iβ‚€ k % b)) < ↑abv b β€’ Ξ΅
R: Type u_1

inst✝: EuclideanDomain R

abv: AbsoluteValue R β„€

h✝: IsAdmissible abv

this: DecidableEq R

n: β„•

ih: βˆ€ {Ξ΅ : ℝ}, 0 < Ξ΅ β†’ βˆ€ {b : R}, b β‰  0 β†’ βˆ€ (A : Fin (Nat.succ (IsAdmissible.card h✝ Ξ΅ ^ n)) β†’ Fin n β†’ R), βˆƒ iβ‚€ i₁, iβ‚€ β‰  i₁ ∧ βˆ€ (k : Fin n), ↑(↑abv (A i₁ k % b - A iβ‚€ k % b)) < ↑abv b β€’ Ξ΅

Ξ΅: ℝ

hΞ΅: 0 < Ξ΅

b: R

hb: b β‰  0

A: Fin (Nat.succ (IsAdmissible.card h✝ Ξ΅ ^ Nat.succ n)) β†’ Fin (Nat.succ n) β†’ R

M:= IsAdmissible.card h✝ Ξ΅: β„•

s: Fin (Nat.succ (M ^ n)) β†’ Fin (Nat.succ (M ^ Nat.succ n))

s_inj: Function.Injective s

hs: βˆ€ (iβ‚€ i₁ : Fin (Nat.succ (M ^ n))), ↑(↑abv (A (s i₁) 0 % b - A (s iβ‚€) 0 % b)) < ↑abv b β€’ Ξ΅

kβ‚€, k₁: Fin (Nat.succ (IsAdmissible.card h✝ Ξ΅ ^ n))

hk: kβ‚€ β‰  k₁

h: βˆ€ (k : Fin n), ↑(↑abv (Fin.tail (A (s k₁)) k % b - Fin.tail (A (s kβ‚€)) k % b)) < ↑abv b β€’ Ξ΅


succ.intro.intro.intro.intro.intro
βˆƒ iβ‚€ i₁, iβ‚€ β‰  i₁ ∧ βˆ€ (k : Fin (Nat.succ n)), ↑(↑abv (A i₁ k % b - A iβ‚€ k % b)) < ↑abv b β€’ Ξ΅
R: Type u_1

inst✝: EuclideanDomain R

abv: AbsoluteValue R β„€

n: β„•

h: IsAdmissible abv


βˆ€ {Ξ΅ : ℝ}, 0 < Ξ΅ β†’ βˆ€ {b : R}, b β‰  0 β†’ βˆ€ (A : Fin (Nat.succ (IsAdmissible.card h Ξ΅ ^ n)) β†’ Fin n β†’ R), βˆƒ iβ‚€ i₁, iβ‚€ β‰  i₁ ∧ βˆ€ (k : Fin n), ↑(↑abv (A i₁ k % b - A iβ‚€ k % b)) < ↑abv b β€’ Ξ΅
R: Type u_1

inst✝: EuclideanDomain R

abv: AbsoluteValue R β„€

h✝: IsAdmissible abv

this: DecidableEq R

n: β„•

ih: βˆ€ {Ξ΅ : ℝ}, 0 < Ξ΅ β†’ βˆ€ {b : R}, b β‰  0 β†’ βˆ€ (A : Fin (Nat.succ (IsAdmissible.card h✝ Ξ΅ ^ n)) β†’ Fin n β†’ R), βˆƒ iβ‚€ i₁, iβ‚€ β‰  i₁ ∧ βˆ€ (k : Fin n), ↑(↑abv (A i₁ k % b - A iβ‚€ k % b)) < ↑abv b β€’ Ξ΅

Ξ΅: ℝ

hΞ΅: 0 < Ξ΅

b: R

hb: b β‰  0

A: Fin (Nat.succ (IsAdmissible.card h✝ Ξ΅ ^ Nat.succ n)) β†’ Fin (Nat.succ n) β†’ R

M:= IsAdmissible.card h✝ Ξ΅: β„•

s: Fin (Nat.succ (M ^ n)) β†’ Fin (Nat.succ (M ^ Nat.succ n))

s_inj: Function.Injective s

hs: βˆ€ (iβ‚€ i₁ : Fin (Nat.succ (M ^ n))), ↑(↑abv (A (s i₁) 0 % b - A (s iβ‚€) 0 % b)) < ↑abv b β€’ Ξ΅

kβ‚€, k₁: Fin (Nat.succ (IsAdmissible.card h✝ Ξ΅ ^ n))

hk: kβ‚€ β‰  k₁

h: βˆ€ (k : Fin n), ↑(↑abv (Fin.tail (A (s k₁)) k % b - Fin.tail (A (s kβ‚€)) k % b)) < ↑abv b β€’ Ξ΅

i: Fin (Nat.succ n)


succ.intro.intro.intro.intro.intro.refine'_1
↑(↑abv (A (s k₁) 0 % b - A (s kβ‚€) 0 % b)) < ↑abv b β€’ Ξ΅
R: Type u_1

inst✝: EuclideanDomain R

abv: AbsoluteValue R β„€

h✝: IsAdmissible abv

this: DecidableEq R

n: β„•

ih: βˆ€ {Ξ΅ : ℝ}, 0 < Ξ΅ β†’ βˆ€ {b : R}, b β‰  0 β†’ βˆ€ (A : Fin (Nat.succ (IsAdmissible.card h✝ Ξ΅ ^ n)) β†’ Fin n β†’ R), βˆƒ iβ‚€ i₁, iβ‚€ β‰  i₁ ∧ βˆ€ (k : Fin n), ↑(↑abv (A i₁ k % b - A iβ‚€ k % b)) < ↑abv b β€’ Ξ΅

Ξ΅: ℝ

hΞ΅: 0 < Ξ΅

b: R

hb: b β‰  0

A: Fin (Nat.succ (IsAdmissible.card h✝ Ξ΅ ^ Nat.succ n)) β†’ Fin (Nat.succ n) β†’ R

M:= IsAdmissible.card h✝ Ξ΅: β„•

s: Fin (Nat.succ (M ^ n)) β†’ Fin (Nat.succ (M ^ Nat.succ n))

s_inj: Function.Injective s

hs: βˆ€ (iβ‚€ i₁ : Fin (Nat.succ (M ^ n))), ↑(↑abv (A (s i₁) 0 % b - A (s iβ‚€) 0 % b)) < ↑abv b β€’ Ξ΅

kβ‚€, k₁: Fin (Nat.succ (IsAdmissible.card h✝ Ξ΅ ^ n))

hk: kβ‚€ β‰  k₁

h: βˆ€ (k : Fin n), ↑(↑abv (Fin.tail (A (s k₁)) k % b - Fin.tail (A (s kβ‚€)) k % b)) < ↑abv b β€’ Ξ΅

i✝: Fin (Nat.succ n)

i: Fin n


succ.intro.intro.intro.intro.intro.refine'_2
↑(↑abv (A (s k₁) (Fin.succ i) % b - A (s kβ‚€) (Fin.succ i) % b)) < ↑abv b β€’ Ξ΅
R: Type u_1

inst✝: EuclideanDomain R

abv: AbsoluteValue R β„€

n: β„•

h: IsAdmissible abv


βˆ€ {Ξ΅ : ℝ}, 0 < Ξ΅ β†’ βˆ€ {b : R}, b β‰  0 β†’ βˆ€ (A : Fin (Nat.succ (IsAdmissible.card h Ξ΅ ^ n)) β†’ Fin n β†’ R), βˆƒ iβ‚€ i₁, iβ‚€ β‰  i₁ ∧ βˆ€ (k : Fin n), ↑(↑abv (A i₁ k % b - A iβ‚€ k % b)) < ↑abv b β€’ Ξ΅
R: Type u_1

inst✝: EuclideanDomain R

abv: AbsoluteValue R β„€

h✝: IsAdmissible abv

this: DecidableEq R

n: β„•

ih: βˆ€ {Ξ΅ : ℝ}, 0 < Ξ΅ β†’ βˆ€ {b : R}, b β‰  0 β†’ βˆ€ (A : Fin (Nat.succ (IsAdmissible.card h✝ Ξ΅ ^ n)) β†’ Fin n β†’ R), βˆƒ iβ‚€ i₁, iβ‚€ β‰  i₁ ∧ βˆ€ (k : Fin n), ↑(↑abv (A i₁ k % b - A iβ‚€ k % b)) < ↑abv b β€’ Ξ΅

Ξ΅: ℝ

hΞ΅: 0 < Ξ΅

b: R

hb: b β‰  0

A: Fin (Nat.succ (IsAdmissible.card h✝ Ξ΅ ^ Nat.succ n)) β†’ Fin (Nat.succ n) β†’ R

M:= IsAdmissible.card h✝ Ξ΅: β„•

s: Fin (Nat.succ (M ^ n)) β†’ Fin (Nat.succ (M ^ Nat.succ n))

s_inj: Function.Injective s

hs: βˆ€ (iβ‚€ i₁ : Fin (Nat.succ (M ^ n))), ↑(↑abv (A (s i₁) 0 % b - A (s iβ‚€) 0 % b)) < ↑abv b β€’ Ξ΅

kβ‚€, k₁: Fin (Nat.succ (IsAdmissible.card h✝ Ξ΅ ^ n))

hk: kβ‚€ β‰  k₁

h: βˆ€ (k : Fin n), ↑(↑abv (Fin.tail (A (s k₁)) k % b - Fin.tail (A (s kβ‚€)) k % b)) < ↑abv b β€’ Ξ΅

i: Fin (Nat.succ n)


succ.intro.intro.intro.intro.intro.refine'_1
↑(↑abv (A (s k₁) 0 % b - A (s kβ‚€) 0 % b)) < ↑abv b β€’ Ξ΅
R: Type u_1

inst✝: EuclideanDomain R

abv: AbsoluteValue R β„€

h✝: IsAdmissible abv

this: DecidableEq R

n: β„•

ih: βˆ€ {Ξ΅ : ℝ}, 0 < Ξ΅ β†’ βˆ€ {b : R}, b β‰  0 β†’ βˆ€ (A : Fin (Nat.succ (IsAdmissible.card h✝ Ξ΅ ^ n)) β†’ Fin n β†’ R), βˆƒ iβ‚€ i₁, iβ‚€ β‰  i₁ ∧ βˆ€ (k : Fin n), ↑(↑abv (A i₁ k % b - A iβ‚€ k % b)) < ↑abv b β€’ Ξ΅

Ξ΅: ℝ

hΞ΅: 0 < Ξ΅

b: R

hb: b β‰  0

A: Fin (Nat.succ (IsAdmissible.card h✝ Ξ΅ ^ Nat.succ n)) β†’ Fin (Nat.succ n) β†’ R

M:= IsAdmissible.card h✝ Ξ΅: β„•

s: Fin (Nat.succ (M ^ n)) β†’ Fin (Nat.succ (M ^ Nat.succ n))

s_inj: Function.Injective s

hs: βˆ€ (iβ‚€ i₁ : Fin (Nat.succ (M ^ n))), ↑(↑abv (A (s i₁) 0 % b - A (s iβ‚€) 0 % b)) < ↑abv b β€’ Ξ΅

kβ‚€, k₁: Fin (Nat.succ (IsAdmissible.card h✝ Ξ΅ ^ n))

hk: kβ‚€ β‰  k₁

h: βˆ€ (k : Fin n), ↑(↑abv (Fin.tail (A (s k₁)) k % b - Fin.tail (A (s kβ‚€)) k % b)) < ↑abv b β€’ Ξ΅

i: Fin (Nat.succ n)


succ.intro.intro.intro.intro.intro.refine'_1
↑(↑abv (A (s k₁) 0 % b - A (s kβ‚€) 0 % b)) < ↑abv b β€’ Ξ΅
R: Type u_1

inst✝: EuclideanDomain R

abv: AbsoluteValue R β„€

h✝: IsAdmissible abv

this: DecidableEq R

n: β„•

ih: βˆ€ {Ξ΅ : ℝ}, 0 < Ξ΅ β†’ βˆ€ {b : R}, b β‰  0 β†’ βˆ€ (A : Fin (Nat.succ (IsAdmissible.card h✝ Ξ΅ ^ n)) β†’ Fin n β†’ R), βˆƒ iβ‚€ i₁, iβ‚€ β‰  i₁ ∧ βˆ€ (k : Fin n), ↑(↑abv (A i₁ k % b - A iβ‚€ k % b)) < ↑abv b β€’ Ξ΅

Ξ΅: ℝ

hΞ΅: 0 < Ξ΅

b: R

hb: b β‰  0

A: Fin (Nat.succ (IsAdmissible.card h✝ Ξ΅ ^ Nat.succ n)) β†’ Fin (Nat.succ n) β†’ R

M:= IsAdmissible.card h✝ Ξ΅: β„•

s: Fin (Nat.succ (M ^ n)) β†’ Fin (Nat.succ (M ^ Nat.succ n))

s_inj: Function.Injective s

hs: βˆ€ (iβ‚€ i₁ : Fin (Nat.succ (M ^ n))), ↑(↑abv (A (s i₁) 0 % b - A (s iβ‚€) 0 % b)) < ↑abv b β€’ Ξ΅

kβ‚€, k₁: Fin (Nat.succ (IsAdmissible.card h✝ Ξ΅ ^ n))

hk: kβ‚€ β‰  k₁

h: βˆ€ (k : Fin n), ↑(↑abv (Fin.tail (A (s k₁)) k % b - Fin.tail (A (s kβ‚€)) k % b)) < ↑abv b β€’ Ξ΅

i✝: Fin (Nat.succ n)

i: Fin n


succ.intro.intro.intro.intro.intro.refine'_2
↑(↑abv (A (s k₁) (Fin.succ i) % b - A (s kβ‚€) (Fin.succ i) % b)) < ↑abv b β€’ Ξ΅

Goals accomplished! πŸ™
R: Type u_1

inst✝: EuclideanDomain R

abv: AbsoluteValue R β„€

n: β„•

h: IsAdmissible abv


βˆ€ {Ξ΅ : ℝ}, 0 < Ξ΅ β†’ βˆ€ {b : R}, b β‰  0 β†’ βˆ€ (A : Fin (Nat.succ (IsAdmissible.card h Ξ΅ ^ n)) β†’ Fin n β†’ R), βˆƒ iβ‚€ i₁, iβ‚€ β‰  i₁ ∧ βˆ€ (k : Fin n), ↑(↑abv (A i₁ k % b - A iβ‚€ k % b)) < ↑abv b β€’ Ξ΅
R: Type u_1

inst✝: