Theorem: MeasureTheory.hitting_lt_iff
File: Mathlib/Probability/Process/HittingTime.lean

tactic: constructor <;> intro h'
state_before: Ω : Type u_1
β : Type u_2
ι : Type u_3
m✝ : MeasurableSpace Ω
inst✝¹ : ConditionallyCompleteLinearOrder ι
u : ι → Ω → β
s : Set β
n i✝ : ι
ω : Ω
inst✝ : IsWellOrder ι fun x x_1 => x < x_1
m i : ι
hi : i ≤ m
⊢ hitting u s n m ω < i ↔ ∃ j ∈ Set.Ico n i, u j ω ∈ s
state_after: case mp
Ω : Type u_1
β : Type u_2
ι : Type u_3
m✝ : MeasurableSpace Ω
inst✝¹ : ConditionallyCompleteLinearOrder ι
u : ι → Ω → β
s : Set β
n i✝ : ι
ω : Ω
inst✝ : IsWellOrder ι fun x x_1 => x < x_1
m i : ι
hi : i ≤ m
h' : hitting u s n m ω < i
⊢ ∃ j ∈ Set.Ico n i, u j ω ∈ s

case mpr
Ω : Type u_1
β : Type u_2
ι : Type u_3
m✝ : MeasurableSpace Ω
inst✝¹ : ConditionallyCompleteLinearOrder ι
u : ι → Ω → β
s : Set β
n i✝ : ι
ω : Ω
inst✝ : IsWellOrder ι fun x x_1 => x < x_1
m i : ι
hi : i ≤ m
h' : ∃ j ∈ Set.Ico n i, u j ω ∈ s
⊢ hitting u s n m ω < i

tactic: have h : ∃ j ∈ Set.Icc n m, u j ω ∈ s := by
  by_contra h
  simp_rw [hitting, if_neg h, ← not_le] at h'
  exact h' hi
state_before: case mp
Ω : Type u_1
β : Type u_2
ι : Type u_3
m✝ : MeasurableSpace Ω
inst✝¹ : ConditionallyCompleteLinearOrder ι
u : ι → Ω → β
s : Set β
n i✝ : ι
ω : Ω
inst✝ : IsWellOrder ι fun x x_1 => x < x_1
m i : ι
hi : i ≤ m
h' : hitting u s n m ω < i
⊢ ∃ j ∈ Set.Ico n i, u j ω ∈ s
state_after: case mp
Ω : Type u_1
β : Type u_2
ι : Type u_3
m✝ : MeasurableSpace Ω
inst✝¹ : ConditionallyCompleteLinearOrder ι
u : ι → Ω → β
s : Set β
n i✝ : ι
ω : Ω
inst✝ : IsWellOrder ι fun x x_1 => x < x_1
m i : ι
hi : i ≤ m
h' : hitting u s n m ω < i
h : ∃ j ∈ Set.Icc n m, u j ω ∈ s
⊢ ∃ j ∈ Set.Ico n i, u j ω ∈ s

tactic: exact ⟨hitting u s n m ω, ⟨le_hitting_of_exists h, h'⟩, hitting_mem_set h⟩
state_before: case mp
Ω : Type u_1
β : Type u_2
ι : Type u_3
m✝ : MeasurableSpace Ω
inst✝¹ : ConditionallyCompleteLinearOrder ι
u : ι → Ω → β
s : Set β
n i✝ : ι
ω : Ω
inst✝ : IsWellOrder ι fun x x_1 => x < x_1
m i : ι
hi : i ≤ m
h' : hitting u s n m ω < i
h : ∃ j ∈ Set.Icc n m, u j ω ∈ s
⊢ ∃ j ∈ Set.Ico n i, u j ω ∈ s
state_after: no goals

tactic: by_contra h
state_before: Ω : Type u_1
β : Type u_2
ι : Type u_3
m✝ : MeasurableSpace Ω
inst✝¹ : ConditionallyCompleteLinearOrder ι
u : ι → Ω → β
s : Set β
n i✝ : ι
ω : Ω
inst✝ : IsWellOrder ι fun x x_1 => x < x_1
m i : ι
hi : i ≤ m
h' : hitting u s n m ω < i
⊢ ∃ j ∈ Set.Icc n m, u j ω ∈ s
state_after: Ω : Type u_1
β : Type u_2
ι : Type u_3
m✝ : MeasurableSpace Ω
inst✝¹ : ConditionallyCompleteLinearOrder ι
u : ι → Ω → β
s : Set β
n i✝ : ι
ω : Ω
inst✝ : IsWellOrder ι fun x x_1 => x < x_1
m i : ι
hi : i ≤ m
h' : hitting u s n m ω < i
h : ¬∃ j ∈ Set.Icc n m, u j ω ∈ s
⊢ False

tactic: simp_rw [hitting, if_neg h, ← not_le] at h'
state_before: Ω : Type u_1
β : Type u_2
ι : Type u_3
m✝ : MeasurableSpace Ω
inst✝¹ : ConditionallyCompleteLinearOrder ι
u : ι → Ω → β
s : Set β
n i✝ : ι
ω : Ω
inst✝ : IsWellOrder ι fun x x_1 => x < x_1
m i : ι
hi : i ≤ m
h' : hitting u s n m ω < i
h : ¬∃ j ∈ Set.Icc n m, u j ω ∈ s
⊢ False
state_after: Ω : Type u_1
β : Type u_2
ι : Type u_3
m✝ : MeasurableSpace Ω
inst✝¹ : ConditionallyCompleteLinearOrder ι
u : ι → Ω → β
s : Set β
n i✝ : ι
ω : Ω
inst✝ : IsWellOrder ι fun x x_1 => x < x_1
m i : ι
hi : i ≤ m
h : ¬∃ j ∈ Set.Icc n m, u j ω ∈ s
h' : ¬i ≤ m
⊢ False

tactic: exact h' hi
state_before: Ω : Type u_1
β : Type u_2
ι : Type u_3
m✝ : MeasurableSpace Ω
inst✝¹ : ConditionallyCompleteLinearOrder ι
u : ι → Ω → β
s : Set β
n i✝ : ι
ω : Ω
inst✝ : IsWellOrder ι fun x x_1 => x < x_1
m i : ι
hi : i ≤ m
h : ¬∃ j ∈ Set.Icc n m, u j ω ∈ s
h' : ¬i ≤ m
⊢ False
state_after: no goals

tactic: obtain ⟨k, hk₁, hk₂⟩ := h'
state_before: case mpr
Ω : Type u_1
β : Type u_2
ι : Type u_3
m✝ : MeasurableSpace Ω
inst✝¹ : ConditionallyCompleteLinearOrder ι
u : ι → Ω → β
s : Set β
n i✝ : ι
ω : Ω
inst✝ : IsWellOrder ι fun x x_1 => x < x_1
m i : ι
hi : i ≤ m
h' : ∃ j ∈ Set.Ico n i, u j ω ∈ s
⊢ hitting u s n m ω < i
state_after: case mpr.intro.intro
Ω : Type u_1
β : Type u_2
ι : Type u_3
m✝ : MeasurableSpace Ω
inst✝¹ : ConditionallyCompleteLinearOrder ι
u : ι → Ω → β
s : Set β
n i✝ : ι
ω : Ω
inst✝ : IsWellOrder ι fun x x_1 => x < x_1
m i : ι
hi : i ≤ m
k : ι
hk₁ : k ∈ Set.Ico n i
hk₂ : u k ω ∈ s
⊢ hitting u s n m ω < i

tactic: refine lt_of_le_of_lt ?_ hk₁.2
state_before: case mpr.intro.intro
Ω : Type u_1
β : Type u_2
ι : Type u_3
m✝ : MeasurableSpace Ω
inst✝¹ : ConditionallyCompleteLinearOrder ι
u : ι → Ω → β
s : Set β
n i✝ : ι
ω : Ω
inst✝ : IsWellOrder ι fun x x_1 => x < x_1
m i : ι
hi : i ≤ m
k : ι
hk₁ : k ∈ Set.Ico n i
hk₂ : u k ω ∈ s
⊢ hitting u s n m ω < i
state_after: case mpr.intro.intro
Ω : Type u_1
β : Type u_2
ι : Type u_3
m✝ : MeasurableSpace Ω
inst✝¹ : ConditionallyCompleteLinearOrder ι
u : ι → Ω → β
s : Set β
n i✝ : ι
ω : Ω
inst✝ : IsWellOrder ι fun x x_1 => x < x_1
m i : ι
hi : i ≤ m
k : ι
hk₁ : k ∈ Set.Ico n i
hk₂ : u k ω ∈ s
⊢ hitting u s n m ω ≤ k

tactic: exact hitting_le_of_mem hk₁.1 (hk₁.2.le.trans hi) hk₂
state_before: case mpr.intro.intro
Ω : Type u_1
β : Type u_2
ι : Type u_3
m✝ : MeasurableSpace Ω
inst✝¹ : ConditionallyCompleteLinearOrder ι
u : ι → Ω → β
s : Set β
n i✝ : ι
ω : Ω
inst✝ : IsWellOrder ι fun x x_1 => x < x_1
m i : ι
hi : i ≤ m
k : ι
hk₁ : k ∈ Set.Ico n i
hk₂ : u k ω ∈ s
⊢ hitting u s n m ω ≤ k
state_after: no goals