Theorem: OmegaCompletePartialOrder.ContinuousHom.forall_forall_merge
File: Mathlib/Order/OmegaCompletePartialOrder.lean

tactic: constructor <;> introv h
state_before: α : Type u
α' : Type ?u.67503
β : Type v
β' : Type ?u.67508
γ : Type ?u.67511
φ : Type ?u.67514
inst✝⁵ : OmegaCompletePartialOrder α
inst✝⁴ : OmegaCompletePartialOrder β
inst✝³ : OmegaCompletePartialOrder γ
inst✝² : OmegaCompletePartialOrder φ
inst✝¹ : OmegaCompletePartialOrder α'
inst✝ : OmegaCompletePartialOrder β'
c₀ : Chain (α →𝒄 β)
c₁ : Chain α
z : β
⊢ (∀ (i j : ℕ), ↑(↑c₀ i).toOrderHom (↑c₁ j) ≤ z) ↔ ∀ (i : ℕ), ↑(↑c₀ i).toOrderHom (↑c₁ i) ≤ z

tactic: apply h
state_before: case mp
α : Type u
α' : Type ?u.67503
β : Type v
β' : Type ?u.67508
γ : Type ?u.67511
φ : Type ?u.67514
inst✝⁵ : OmegaCompletePartialOrder α
inst✝⁴ : OmegaCompletePartialOrder β
inst✝³ : OmegaCompletePartialOrder γ
inst✝² : OmegaCompletePartialOrder φ
inst✝¹ : OmegaCompletePartialOrder α'
inst✝ : OmegaCompletePartialOrder β'
c₀ : Chain (α →𝒄 β)
c₁ : Chain α
z : β
h : ∀ (i j : ℕ), ↑(↑c₀ i).toOrderHom (↑c₁ j) ≤ z
i : ℕ
⊢ ↑(↑c₀ i).toOrderHom (↑c₁ i) ≤ z

tactic: apply le_trans _ (h (max i j))
state_before: case mpr
α : Type u
α' : Type ?u.67503
β : Type v
β' : Type ?u.67508
γ : Type ?u.67511
φ : Type ?u.67514
inst✝⁵ : OmegaCompletePartialOrder α
inst✝⁴ : OmegaCompletePartialOrder β
inst✝³ : OmegaCompletePartialOrder γ
inst✝² : OmegaCompletePartialOrder φ
inst✝¹ : OmegaCompletePartialOrder α'
inst✝ : OmegaCompletePartialOrder β'
c₀ : Chain (α →𝒄 β)
c₁ : Chain α
z : β
h : ∀ (i : ℕ), ↑(↑c₀ i).toOrderHom (↑c₁ i) ≤ z
i j : ℕ
⊢ ↑(↑c₀ i).toOrderHom (↑c₁ j) ≤ z

tactic: trans c₀ i (c₁ (max i j))
state_before: α : Type u
α' : Type ?u.67503
β : Type v
β' : Type ?u.67508
γ : Type ?u.67511
φ : Type ?u.67514
inst✝⁵ : OmegaCompletePartialOrder α
inst✝⁴ : OmegaCompletePartialOrder β
inst✝³ : OmegaCompletePartialOrder γ
inst✝² : OmegaCompletePartialOrder φ
inst✝¹ : OmegaCompletePartialOrder α'
inst✝ : OmegaCompletePartialOrder β'
c₀ : Chain (α →𝒄 β)
c₁ : Chain α
z : β
h : ∀ (i : ℕ), ↑(↑c₀ i).toOrderHom (↑c₁ i) ≤ z
i j : ℕ
⊢ ↑(↑c₀ i).toOrderHom (↑c₁ j) ≤ ↑(↑c₀ (max i j)).toOrderHom (↑c₁ (max i j))

tactic: apply (c₀ i).monotone
state_before: α : Type u
α' : Type ?u.67503
β : Type v
β' : Type ?u.67508
γ : Type ?u.67511
φ : Type ?u.67514
inst✝⁵ : OmegaCompletePartialOrder α
inst✝⁴ : OmegaCompletePartialOrder β
inst✝³ : OmegaCompletePartialOrder γ
inst✝² : OmegaCompletePartialOrder φ
inst✝¹ : OmegaCompletePartialOrder α'
inst✝ : OmegaCompletePartialOrder β'
c₀ : Chain (α →𝒄 β)
c₁ : Chain α
z : β
h : ∀ (i : ℕ), ↑(↑c₀ i).toOrderHom (↑c₁ i) ≤ z
i j : ℕ
⊢ ↑(↑c₀ i).toOrderHom (↑c₁ j) ≤ ↑(↑c₀ i).toOrderHom (↑c₁ (max i j))

tactic: apply c₁.monotone
state_before: case a
α : Type u
α' : Type ?u.67503
β : Type v
β' : Type ?u.67508
γ : Type ?u.67511
φ : Type ?u.67514
inst✝⁵ : OmegaCompletePartialOrder α
inst✝⁴ : OmegaCompletePartialOrder β
inst✝³ : OmegaCompletePartialOrder γ
inst✝² : OmegaCompletePartialOrder φ
inst✝¹ : OmegaCompletePartialOrder α'
inst✝ : OmegaCompletePartialOrder β'
c₀ : Chain (α →𝒄 β)
c₁ : Chain α
z : β
h : ∀ (i : ℕ), ↑(↑c₀ i).toOrderHom (↑c₁ i) ≤ z
i j : ℕ
⊢ ↑c₁ j ≤ ↑c₁ (max i j)

tactic: apply le_max_right
state_before: case a.a
α : Type u
α' : Type ?u.67503
β : Type v
β' : Type ?u.67508
γ : Type ?u.67511
φ : Type ?u.67514
inst✝⁵ : OmegaCompletePartialOrder α
inst✝⁴ : OmegaCompletePartialOrder β
inst✝³ : OmegaCompletePartialOrder γ
inst✝² : OmegaCompletePartialOrder φ
inst✝¹ : OmegaCompletePartialOrder α'
inst✝ : OmegaCompletePartialOrder β'
c₀ : Chain (α →𝒄 β)
c₁ : Chain α
z : β
h : ∀ (i : ℕ), ↑(↑c₀ i).toOrderHom (↑c₁ i) ≤ z
i j : ℕ
⊢ j ≤ max i j

tactic: apply c₀.monotone
state_before: α : Type u
α' : Type ?u.67503
β : Type v
β' : Type ?u.67508
γ : Type ?u.67511
φ : Type ?u.67514
inst✝⁵ : OmegaCompletePartialOrder α
inst✝⁴ : OmegaCompletePartialOrder β
inst✝³ : OmegaCompletePartialOrder γ
inst✝² : OmegaCompletePartialOrder φ
inst✝¹ : OmegaCompletePartialOrder α'
inst✝ : OmegaCompletePartialOrder β'
c₀ : Chain (α →𝒄 β)
c₁ : Chain α
z : β
h : ∀ (i : ℕ), ↑(↑c₀ i).toOrderHom (↑c₁ i) ≤ z
i j : ℕ
⊢ ↑(↑c₀ i).toOrderHom (↑c₁ (max i j)) ≤ ↑(↑c₀ (max i j)).toOrderHom (↑c₁ (max i j))

tactic: apply le_max_left
state_before: case a
α : Type u
α' : Type ?u.67503
β : Type v
β' : Type ?u.67508
γ : Type ?u.67511
φ : Type ?u.67514
inst✝⁵ : OmegaCompletePartialOrder α
inst✝⁴ : OmegaCompletePartialOrder β
inst✝³ : OmegaCompletePartialOrder γ
inst✝² : OmegaCompletePartialOrder φ
inst✝¹ : OmegaCompletePartialOrder α'
inst✝ : OmegaCompletePartialOrder β'
c₀ : Chain (α →𝒄 β)
c₁ : Chain α
z : β
h : ∀ (i : ℕ), ↑(↑c₀ i).toOrderHom (↑c₁ i) ≤ z
i j : ℕ
⊢ i ≤ max i j