Theorem: MeasureTheory.OuterMeasure.le_pi
File: Mathlib/MeasureTheory/Constructions/Pi.lean

tactic: rw [OuterMeasure.pi, le_boundedBy']
state_before: ι : Type u_1
ι' : Type u_2
α : ι → Type u_3
inst✝ : Fintype ι
m✝ m : (i : ι) → OuterMeasure (α i)
n : OuterMeasure ((i : ι) → α i)
⊢ n ≤ OuterMeasure.pi m ↔ ∀ (s : (i : ι) → Set (α i)), (univ.pi s).Nonempty → n (univ.pi s) ≤ ∏ i : ι, (m i) (s i)
state_after: ι : Type u_1
ι' : Type u_2
α : ι → Type u_3
inst✝ : Fintype ι
m✝ m : (i : ι) → OuterMeasure (α i)
n : OuterMeasure ((i : ι) → α i)
⊢ (∀ (s : Set ((i : ι) → α i)), s.Nonempty → n s ≤ piPremeasure m s) ↔
    ∀ (s : (i : ι) → Set (α i)), (univ.pi s).Nonempty → n (univ.pi s) ≤ ∏ i : ι, (m i) (s i)

tactic: constructor
state_before: ι : Type u_1
ι' : Type u_2
α : ι → Type u_3
inst✝ : Fintype ι
m✝ m : (i : ι) → OuterMeasure (α i)
n : OuterMeasure ((i : ι) → α i)
⊢ (∀ (s : Set ((i : ι) → α i)), s.Nonempty → n s ≤ piPremeasure m s) ↔
    ∀ (s : (i : ι) → Set (α i)), (univ.pi s).Nonempty → n (univ.pi s) ≤ ∏ i : ι, (m i) (s i)
state_after: case mp
ι : Type u_1
ι' : Type u_2
α : ι → Type u_3
inst✝ : Fintype ι
m✝ m : (i : ι) → OuterMeasure (α i)
n : OuterMeasure ((i : ι) → α i)
⊢ (∀ (s : Set ((i : ι) → α i)), s.Nonempty → n s ≤ piPremeasure m s) →
    ∀ (s : (i : ι) → Set (α i)), (univ.pi s).Nonempty → n (univ.pi s) ≤ ∏ i : ι, (m i) (s i)

case mpr
ι : Type u_1
ι' : Type u_2
α : ι → Type u_3
inst✝ : Fintype ι
m✝ m : (i : ι) → OuterMeasure (α i)
n : OuterMeasure ((i : ι) → α i)
⊢ (∀ (s : (i : ι) → Set (α i)), (univ.pi s).Nonempty → n (univ.pi s) ≤ ∏ i : ι, (m i) (s i)) →
    ∀ (s : Set ((i : ι) → α i)), s.Nonempty → n s ≤ piPremeasure m s

tactic: intro h s hs
state_before: case mp
ι : Type u_1
ι' : Type u_2
α : ι → Type u_3
inst✝ : Fintype ι
m✝ m : (i : ι) → OuterMeasure (α i)
n : OuterMeasure ((i : ι) → α i)
⊢ (∀ (s : Set ((i : ι) → α i)), s.Nonempty → n s ≤ piPremeasure m s) →
    ∀ (s : (i : ι) → Set (α i)), (univ.pi s).Nonempty → n (univ.pi s) ≤ ∏ i : ι, (m i) (s i)
state_after: case mp
ι : Type u_1
ι' : Type u_2
α : ι → Type u_3
inst✝ : Fintype ι
m✝ m : (i : ι) → OuterMeasure (α i)
n : OuterMeasure ((i : ι) → α i)
h : ∀ (s : Set ((i : ι) → α i)), s.Nonempty → n s ≤ piPremeasure m s
s : (i : ι) → Set (α i)
hs : (univ.pi s).Nonempty
⊢ n (univ.pi s) ≤ ∏ i : ι, (m i) (s i)

tactic: refine (h _ hs).trans_eq (piPremeasure_pi hs)
state_before: case mp
ι : Type u_1
ι' : Type u_2
α : ι → Type u_3
inst✝ : Fintype ι
m✝ m : (i : ι) → OuterMeasure (α i)
n : OuterMeasure ((i : ι) → α i)
h : ∀ (s : Set ((i : ι) → α i)), s.Nonempty → n s ≤ piPremeasure m s
s : (i : ι) → Set (α i)
hs : (univ.pi s).Nonempty
⊢ n (univ.pi s) ≤ ∏ i : ι, (m i) (s i)
state_after: no goals

tactic: intro h s hs
state_before: case mpr
ι : Type u_1
ι' : Type u_2
α : ι → Type u_3
inst✝ : Fintype ι
m✝ m : (i : ι) → OuterMeasure (α i)
n : OuterMeasure ((i : ι) → α i)
⊢ (∀ (s : (i : ι) → Set (α i)), (univ.pi s).Nonempty → n (univ.pi s) ≤ ∏ i : ι, (m i) (s i)) →
    ∀ (s : Set ((i : ι) → α i)), s.Nonempty → n s ≤ piPremeasure m s
state_after: case mpr
ι : Type u_1
ι' : Type u_2
α : ι → Type u_3
inst✝ : Fintype ι
m✝ m : (i : ι) → OuterMeasure (α i)
n : OuterMeasure ((i : ι) → α i)
h : ∀ (s : (i : ι) → Set (α i)), (univ.pi s).Nonempty → n (univ.pi s) ≤ ∏ i : ι, (m i) (s i)
s : Set ((i : ι) → α i)
hs : s.Nonempty
⊢ n s ≤ piPremeasure m s

tactic: refine le_trans (n.mono <| subset_pi_eval_image univ s) (h _ ?_)
state_before: case mpr
ι : Type u_1
ι' : Type u_2
α : ι → Type u_3
inst✝ : Fintype ι
m✝ m : (i : ι) → OuterMeasure (α i)
n : OuterMeasure ((i : ι) → α i)
h : ∀ (s : (i : ι) → Set (α i)), (univ.pi s).Nonempty → n (univ.pi s) ≤ ∏ i : ι, (m i) (s i)
s : Set ((i : ι) → α i)
hs : s.Nonempty
⊢ n s ≤ piPremeasure m s
state_after: case mpr
ι : Type u_1
ι' : Type u_2
α : ι → Type u_3
inst✝ : Fintype ι
m✝ m : (i : ι) → OuterMeasure (α i)
n : OuterMeasure ((i : ι) → α i)
h : ∀ (s : (i : ι) → Set (α i)), (univ.pi s).Nonempty → n (univ.pi s) ≤ ∏ i : ι, (m i) (s i)
s : Set ((i : ι) → α i)
hs : s.Nonempty
⊢ (univ.pi fun i => eval i '' s).Nonempty

tactic: simp [univ_pi_nonempty_iff, hs]
state_before: case mpr
ι : Type u_1
ι' : Type u_2
α : ι → Type u_3
inst✝ : Fintype ι
m✝ m : (i : ι) → OuterMeasure (α i)
n : OuterMeasure ((i : ι) → α i)
h : ∀ (s : (i : ι) → Set (α i)), (univ.pi s).Nonempty → n (univ.pi s) ≤ ∏ i : ι, (m i) (s i)
s : Set ((i : ι) → α i)
hs : s.Nonempty
⊢ (univ.pi fun i => eval i '' s).Nonempty
state_after: no goals