Theorem: LO.FirstOrder.Arith.Model.Seq.seqMap_exists (Arithmetization/ISigmaOne/HFS/Seq.lean)

State before:
M : Type u_1
inst✝⁵ : Zero M
inst✝⁴ : One M
inst✝³ : Add M
inst✝² : Mul M
inst✝¹ : LT M
inst✝ : M ⊧ₘ* 𝐈𝚺₁
f : M → M
hf : 𝚺₁-Function₁ f
s : M
Hs : Seq s
⊢ ∃ t, Seq t ∧ lh t = lh s ∧ ∀ (i x : M), ⟪i, x⟫ ∈ s → ⟪i, f x⟫ ∈ t
Tactic:
suffices ∃ t, Seq t ∧ lh t = lh s ∧ ∀ i < lh s, ∀ x < s, ⟪i, x⟫ ∈ s → ⟪i, f x⟫ ∈ t
by  rcases this with ⟨t, Ht, hts, h⟩
    exact ⟨t, Ht, hts, fun i x hx ↦ h i (Hs.lt_lh_of_mem hx) x (lt_of_mem_rng hx) hx⟩
State after:
M : Type u_1
inst✝⁵ : Zero M
inst✝⁴ : One M
inst✝³ : Add M
inst✝² : Mul M
inst✝¹ : LT M
inst✝ : M ⊧ₘ* 𝐈𝚺₁
f : M → M
hf : 𝚺₁-Function₁ f
s : M
Hs : Seq s
⊢ ∃ t, Seq t ∧ lh t = lh s ∧ ∀ i < lh s, ∀ x < s, ⟪i, x⟫ ∈ s → ⟪i, f x⟫ ∈ t

State before:
M : Type u_1
inst✝⁵ : Zero M
inst✝⁴ : One M
inst✝³ : Add M
inst✝² : Mul M
inst✝¹ : LT M
inst✝ : M ⊧ₘ* 𝐈𝚺₁
f : M → M
hf : 𝚺₁-Function₁ f
s : M
Hs : Seq s
⊢ ∃ t, Seq t ∧ lh t = lh s ∧ ∀ i < lh s, ∀ x < s, ⟪i, x⟫ ∈ s → ⟪i, f x⟫ ∈ t
Tactic:
revert Hs
State after:
M : Type u_1
inst✝⁵ : Zero M
inst✝⁴ : One M
inst✝³ : Add M
inst✝² : Mul M
inst✝¹ : LT M
inst✝ : M ⊧ₘ* 𝐈𝚺₁
f : M → M
hf : 𝚺₁-Function₁ f
s : M
⊢ Seq s → ∃ t, Seq t ∧ lh t = lh s ∧ ∀ i < lh s, ∀ x < s, ⟪i, x⟫ ∈ s → ⟪i, f x⟫ ∈ t

State before:
M : Type u_1
inst✝⁵ : Zero M
inst✝⁴ : One M
inst✝³ : Add M
inst✝² : Mul M
inst✝¹ : LT M
inst✝ : M ⊧ₘ* 𝐈𝚺₁
f : M → M
hf : 𝚺₁-Function₁ f
s : M
⊢ Seq s → ∃ t, Seq t ∧ lh t = lh s ∧ ∀ i < lh s, ∀ x < s, ⟪i, x⟫ ∈ s → ⟪i, f x⟫ ∈ t
Tactic:
apply @seq_induction M _ _ _ _ _ _ 𝚺
State after:
case hP
M : Type u_1
inst✝⁵ : Zero M
inst✝⁴ : One M
inst✝³ : Add M
inst✝² : Mul M
inst✝¹ : LT M
inst✝ : M ⊧ₘ* 𝐈𝚺₁
f : M → M
hf : 𝚺₁-Function₁ f
s : M
⊢ (𝚺, 1)-Predicate fun {s} => ∃ t, Seq t ∧ lh t = lh s ∧ ∀ i < lh s, ∀ x < s, ⟪i, x⟫ ∈ s → ⟪i, f x⟫ ∈ t

case hnil
M : Type u_1
inst✝⁵ : Zero M
inst✝⁴ : One M
inst✝³ : Add M
inst✝² : Mul M
inst✝¹ : LT M
inst✝ : M ⊧ₘ* 𝐈𝚺₁
f : M → M
hf : 𝚺₁-Function₁ f
s : M
⊢ ∃ t, Seq t ∧ lh t = lh ∅ ∧ ∀ i < lh ∅, ∀ x < ∅, ⟪i, x⟫ ∈ ∅ → ⟪i, f x⟫ ∈ t

case hcons
M : Type u_1
inst✝⁵ : Zero M
inst✝⁴ : One M
inst✝³ : Add M
inst✝² : Mul M
inst✝¹ : LT M
inst✝ : M ⊧ₘ* 𝐈𝚺₁
f : M → M
hf : 𝚺₁-Function₁ f
s : M
⊢ ∀ (s x : M),
    Seq s →
      (∃ t, Seq t ∧ lh t = lh s ∧ ∀ i < lh s, ∀ x < s, ⟪i, x⟫ ∈ s → ⟪i, f x⟫ ∈ t) →
        ∃ t, Seq t ∧ lh t = lh (s ⁀' x) ∧ ∀ i < lh (s ⁀' x), ∀ x_1 < s ⁀' x, ⟪i, x_1⟫ ∈ s ⁀' x → ⟪i, f x_1⟫ ∈ t

State before:
M : Type u_1
inst✝⁵ : Zero M
inst✝⁴ : One M
inst✝³ : Add M
inst✝² : Mul M
inst✝¹ : LT M
inst✝ : M ⊧ₘ* 𝐈𝚺₁
f : M → M
hf : 𝚺₁-Function₁ f
s : M
⊢ ∃ t, Seq t ∧ lh t = lh ∅ ∧ ∀ i < lh ∅, ∀ x < ∅, ⟪i, x⟫ ∈ ∅ → ⟪i, f x⟫ ∈ t
Tactic:
case hnil =>
  exact ⟨∅, by simp⟩
State after:
no goals

State before:
M : Type u_1
inst✝⁵ : Zero M
inst✝⁴ : One M
inst✝³ : Add M
inst✝² : Mul M
inst✝¹ : LT M
inst✝ : M ⊧ₘ* 𝐈𝚺₁
f : M → M
hf : 𝚺₁-Function₁ f
s : M
Hs : Seq s
this : ∃ t, Seq t ∧ lh t = lh s ∧ ∀ i < lh s, ∀ x < s, ⟪i, x⟫ ∈ s → ⟪i, f x⟫ ∈ t
⊢ ∃ t, Seq t ∧ lh t = lh s ∧ ∀ (i x : M), ⟪i, x⟫ ∈ s → ⟪i, f x⟫ ∈ t
Tactic:
rcases this with ⟨t, Ht, hts, h⟩
State after:
case intro.intro.intro
M : Type u_1
inst✝⁵ : Zero M
inst✝⁴ : One M
inst✝³ : Add M
inst✝² : Mul M
inst✝¹ : LT M
inst✝ : M ⊧ₘ* 𝐈𝚺₁
f : M → M
hf : 𝚺₁-Function₁ f
s : M
Hs : Seq s
t : M
Ht : Seq t
hts : lh t = lh s
h : ∀ i < lh s, ∀ x < s, ⟪i, x⟫ ∈ s → ⟪i, f x⟫ ∈ t
⊢ ∃ t, Seq t ∧ lh t = lh s ∧ ∀ (i x : M), ⟪i, x⟫ ∈ s → ⟪i, f x⟫ ∈ t

State before:
case intro.intro.intro
M : Type u_1
inst✝⁵ : Zero M
inst✝⁴ : One M
inst✝³ : Add M
inst✝² : Mul M
inst✝¹ : LT M
inst✝ : M ⊧ₘ* 𝐈𝚺₁
f : M → M
hf : 𝚺₁-Function₁ f
s : M
Hs : Seq s
t : M
Ht : Seq t
hts : lh t = lh s
h : ∀ i < lh s, ∀ x < s, ⟪i, x⟫ ∈ s → ⟪i, f x⟫ ∈ t
⊢ ∃ t, Seq t ∧ lh t = lh s ∧ ∀ (i x : M), ⟪i, x⟫ ∈ s → ⟪i, f x⟫ ∈ t
Tactic:
exact ⟨t, Ht, hts, fun i x hx ↦ h i (Hs.lt_lh_of_mem hx) x (lt_of_mem_rng hx) hx⟩
State after:
no goals

State before:
case hP
M : Type u_1
inst✝⁵ : Zero M
inst✝⁴ : One M
inst✝³ : Add M
inst✝² : Mul M
inst✝¹ : LT M
inst✝ : M ⊧ₘ* 𝐈𝚺₁
f : M → M
hf : 𝚺₁-Function₁ f
s : M
⊢ (𝚺, 1)-Predicate fun {s} => ∃ t, Seq t ∧ lh t = lh s ∧ ∀ i < lh s, ∀ x < s, ⟪i, x⟫ ∈ s → ⟪i, f x⟫ ∈ t
Tactic:
definability
State after:
no goals

State before:
M : Type u_1
inst✝⁵ : Zero M
inst✝⁴ : One M
inst✝³ : Add M
inst✝² : Mul M
inst✝¹ : LT M
inst✝ : M ⊧ₘ* 𝐈𝚺₁
f : M → M
hf : 𝚺₁-Function₁ f
s : M
⊢ ∃ t, Seq t ∧ lh t = lh ∅ ∧ ∀ i < lh ∅, ∀ x < ∅, ⟪i, x⟫ ∈ ∅ → ⟪i, f x⟫ ∈ t
Tactic:
exact ⟨∅, by simp⟩
State after:
no goals

State before:
M : Type u_1
inst✝⁵ : Zero M
inst✝⁴ : One M
inst✝³ : Add M
inst✝² : Mul M
inst✝¹ : LT M
inst✝ : M ⊧ₘ* 𝐈𝚺₁
f : M → M
hf : 𝚺₁-Function₁ f
s : M
⊢ Seq ∅ ∧ lh ∅ = lh ∅ ∧ ∀ i < lh ∅, ∀ x < ∅, ⟪i, x⟫ ∈ ∅ → ⟪i, f x⟫ ∈ ∅
Tactic:
simp
State after:
no goals

State before:
M : Type u_1
inst✝⁵ : Zero M
inst✝⁴ : One M
inst✝³ : Add M
inst✝² : Mul M
inst✝¹ : LT M
inst✝ : M ⊧ₘ* 𝐈𝚺₁
f : M → M
hf : 𝚺₁-Function₁ f
s : M
⊢ ∀ (s x : M),
    Seq s →
      (∃ t, Seq t ∧ lh t = lh s ∧ ∀ i < lh s, ∀ x < s, ⟪i, x⟫ ∈ s → ⟪i, f x⟫ ∈ t) →
        ∃ t, Seq t ∧ lh t = lh (s ⁀' x) ∧ ∀ i < lh (s ⁀' x), ∀ x_1 < s ⁀' x, ⟪i, x_1⟫ ∈ s ⁀' x → ⟪i, f x_1⟫ ∈ t
Tactic:
intro s x Hs ⟨t, Ht, hts, ih⟩
State after:
M : Type u_1
inst✝⁵ : Zero M
inst✝⁴ : One M
inst✝³ : Add M
inst✝² : Mul M
inst✝¹ : LT M
inst✝ : M ⊧ₘ* 𝐈𝚺₁
f : M → M
hf : 𝚺₁-Function₁ f
s✝ s x : M
Hs : Seq s
t : M
Ht : Seq t
hts : lh t = lh s
ih : ∀ i < lh s, ∀ x < s, ⟪i, x⟫ ∈ s → ⟪i, f x⟫ ∈ t
⊢ ∃ t, Seq t ∧ lh t = lh (s ⁀' x) ∧ ∀ i < lh (s ⁀' x), ∀ x_1 < s ⁀' x, ⟪i, x_1⟫ ∈ s ⁀' x → ⟪i, f x_1⟫ ∈ t

State before:
M : Type u_1
inst✝⁵ : Zero M
inst✝⁴ : One M
inst✝³ : Add M
inst✝² : Mul M
inst✝¹ : LT M
inst✝ : M ⊧ₘ* 𝐈𝚺₁
f : M → M
hf : 𝚺₁-Function₁ f
s✝ s x : M
Hs : Seq s
t : M
Ht : Seq t
hts : lh t = lh s
ih : ∀ i < lh s, ∀ x < s, ⟪i, x⟫ ∈ s → ⟪i, f x⟫ ∈ t
⊢ lh (t ⁀' f x) = lh (s ⁀' x)
Tactic:
simp [Hs, Ht, hts]
State after:
no goals

State before:
M : Type u_1
inst✝⁵ : Zero M
inst✝⁴ : One M
inst✝³ : Add M
inst✝² : Mul M
inst✝¹ : LT M
inst✝ : M ⊧ₘ* 𝐈𝚺₁
f : M → M
hf : 𝚺₁-Function₁ f
s✝ s x : M
Hs : Seq s
t : M
Ht : Seq t
hts : lh t = lh s
ih : ∀ i < lh s, ∀ x < s, ⟪i, x⟫ ∈ s → ⟪i, f x⟫ ∈ t
⊢ ∀ i < lh (s ⁀' x), ∀ x_1 < s ⁀' x, ⟪i, x_1⟫ ∈ s ⁀' x → ⟪i, f x_1⟫ ∈ t ⁀' f x
Tactic:
simp [Hs, Ht]
State after:
M : Type u_1
inst✝⁵ : Zero M
inst✝⁴ : One M
inst✝³ : Add M
inst✝² : Mul M
inst✝¹ : LT M
inst✝ : M ⊧ₘ* 𝐈𝚺₁
f : M → M
hf : 𝚺₁-Function₁ f
s✝ s x : M
Hs : Seq s
t : M
Ht : Seq t
hts : lh t = lh s
ih : ∀ i < lh s, ∀ x < s, ⟪i, x⟫ ∈ s → ⟪i, f x⟫ ∈ t
⊢ ∀ i < lh s + 1, ∀ x_1 < s ⁀' x, ⟪i, x_1⟫ ∈ s ⁀' x → ⟪i, f x_1⟫ ∈ t ⁀' f x

State before:
M : Type u_1
inst✝⁵ : Zero M
inst✝⁴ : One M
inst✝³ : Add M
inst✝² : Mul M
inst✝¹ : LT M
inst✝ : M ⊧ₘ* 𝐈𝚺₁
f : M → M
hf : 𝚺₁-Function₁ f
s✝ s x : M
Hs : Seq s
t : M
Ht : Seq t
hts : lh t = lh s
ih : ∀ i < lh s, ∀ x < s, ⟪i, x⟫ ∈ s → ⟪i, f x⟫ ∈ t
⊢ ∀ i < lh s + 1, ∀ x_1 < s ⁀' x, ⟪i, x_1⟫ ∈ s ⁀' x → ⟪i, f x_1⟫ ∈ t ⁀' f x
Tactic:
intro i hi z _ hz
State after:
M : Type u_1
inst✝⁵ : Zero M
inst✝⁴ : One M
inst✝³ : Add M
inst✝² : Mul M
inst✝¹ : LT M
inst✝ : M ⊧ₘ* 𝐈𝚺₁
f : M → M
hf : 𝚺₁-Function₁ f
s✝ s x : M
Hs : Seq s
t : M
Ht : Seq t
hts : lh t = lh s
ih : ∀ i < lh s, ∀ x < s, ⟪i, x⟫ ∈ s → ⟪i, f x⟫ ∈ t
i : M
hi : i < lh s + 1
z : M
a✝ : z < s ⁀' x
hz : ⟪i, z⟫ ∈ s ⁀' x
⊢ ⟪i, f z⟫ ∈ t ⁀' f x

State before:
M : Type u_1
inst✝⁵ : Zero M
inst✝⁴ : One M
inst✝³ : Add M
inst✝² : Mul M
inst✝¹ : LT M
inst✝ : M ⊧ₘ* 𝐈𝚺₁
f : M → M
hf : 𝚺₁-Function₁ f
s✝ s x : M
Hs : Seq s
t : M
Ht : Seq t
hts : lh t = lh s
ih : ∀ i < lh s, ∀ x < s, ⟪i, x⟫ ∈ s → ⟪i, f x⟫ ∈ t
i : M
hi : i < lh s + 1
z : M
a✝ : z < s ⁀' x
hz : ⟪i, z⟫ ∈ s ⁀' x
⊢ ⟪i, f z⟫ ∈ t ⁀' f x
Tactic:
have : i ≤ lh s := lt_succ_iff_le.mp hi
State after:
M : Type u_1
inst✝⁵ : Zero M
inst✝⁴ : One M
inst✝³ : Add M
inst✝² : Mul M
inst✝¹ : LT M
inst✝ : M ⊧ₘ* 𝐈𝚺₁
f : M → M
hf : 𝚺₁-Function₁ f
s✝ s x : M
Hs : Seq s
t : M
Ht : Seq t
hts : lh t = lh s
ih : ∀ i < lh s, ∀ x < s, ⟪i, x⟫ ∈ s → ⟪i, f x⟫ ∈ t
i : M
hi : i < lh s + 1
z : M
a✝ : z < s ⁀' x
hz : ⟪i, z⟫ ∈ s ⁀' x
this : i ≤ lh s
⊢ ⟪i, f z⟫ ∈ t ⁀' f x

State before:
M : Type u_1
inst✝⁵ : Zero M
inst✝⁴ : One M
inst✝³ : Add M
inst✝² : Mul M
inst✝¹ : LT M
inst✝ : M ⊧ₘ* 𝐈𝚺₁
f : M → M
hf : 𝚺₁-Function₁ f
s✝ s x : M
Hs : Seq s
t : M
Ht : Seq t
hts : lh t = lh s
ih : ∀ i < lh s, ∀ x < s, ⟪i, x⟫ ∈ s → ⟪i, f x⟫ ∈ t
i : M
hi : i < lh s + 1
z : M
a✝ : z < s ⁀' x
hz : ⟪i, z⟫ ∈ s ⁀' x
this : i ≤ lh s
⊢ ⟪i, f z⟫ ∈ t ⁀' f x
Tactic:
rcases this with (rfl | hi)
State after:
case inl
M : Type u_1
inst✝⁵ : Zero M
inst✝⁴ : One M
inst✝³ : Add M
inst✝² : Mul M
inst✝¹ : LT M
inst✝ : M ⊧ₘ* 𝐈𝚺₁
f : M → M
hf : 𝚺₁-Function₁ f
s✝ s x : M
Hs : Seq s
t : M
Ht : Seq t
hts : lh t = lh s
ih : ∀ i < lh s, ∀ x < s, ⟪i, x⟫ ∈ s → ⟪i, f x⟫ ∈ t
z : M
a✝ : z < s ⁀' x
hi : lh s < lh s + 1
hz : ⟪lh s, z⟫ ∈ s ⁀' x
⊢ ⟪lh s, f z⟫ ∈ t ⁀' f x

case inr
M : Type u_1
inst✝⁵ : Zero M
inst✝⁴ : One M
inst✝³ : Add M
inst✝² : Mul M
inst✝¹ : LT M
inst✝ : M ⊧ₘ* 𝐈𝚺₁
f : M → M
hf : 𝚺₁-Function₁ f
s✝ s x : M
Hs : Seq s
t : M
Ht : Seq t
hts : lh t = lh s
ih : ∀ i < lh s, ∀ x < s, ⟪i, x⟫ ∈ s → ⟪i, f x⟫ ∈ t
i : M
hi✝ : i < lh s + 1
z : M
a✝ : z < s ⁀' x
hz : ⟪i, z⟫ ∈ s ⁀' x
hi : i < lh s
⊢ ⟪i, f z⟫ ∈ t ⁀' f x

State before:
case inl
M : Type u_1
inst✝⁵ : Zero M
inst✝⁴ : One M
inst✝³ : Add M
inst✝² : Mul M
inst✝¹ : LT M
inst✝ : M ⊧ₘ* 𝐈𝚺₁
f : M → M
hf : 𝚺₁-Function₁ f
s✝ s x : M
Hs : Seq s
t : M
Ht : Seq t
hts : lh t = lh s
ih : ∀ i < lh s, ∀ x < s, ⟪i, x⟫ ∈ s → ⟪i, f x⟫ ∈ t
z : M
a✝ : z < s ⁀' x
hi : lh s < lh s + 1
hz : ⟪lh s, z⟫ ∈ s ⁀' x
⊢ ⟪lh s, f z⟫ ∈ t ⁀' f x
Tactic:
have : z = x := by simpa [Hs] using hz
State after:
case inl
M : Type u_1
inst✝⁵ : Zero M
inst✝⁴ : One M
inst✝³ : Add M
inst✝² : Mul M
inst✝¹ : LT M
inst✝ : M ⊧ₘ* 𝐈𝚺₁
f : M → M
hf : 𝚺₁-Function₁ f
s✝ s x : M
Hs : Seq s
t : M
Ht : Seq t
hts : lh t = lh s
ih : ∀ i < lh s, ∀ x < s, ⟪i, x⟫ ∈ s → ⟪i, f x⟫ ∈ t
z : M
a✝ : z < s ⁀' x
hi : lh s < lh s + 1
hz : ⟪lh s, z⟫ ∈ s ⁀' x
this : z = x
⊢ ⟪lh s, f z⟫ ∈ t ⁀' f x

State before:
case inl
M : Type u_1
inst✝⁵ : Zero M
inst✝⁴ : One M
inst✝³ : Add M
inst✝² : Mul M
inst✝¹ : LT M
inst✝ : M ⊧ₘ* 𝐈𝚺₁
f : M → M
hf : 𝚺₁-Function₁ f
s✝ s x : M
Hs : Seq s
t : M
Ht : Seq t
hts : lh t = lh s
ih : ∀ i < lh s, ∀ x < s, ⟪i, x⟫ ∈ s → ⟪i, f x⟫ ∈ t
z : M
a✝ : z < s ⁀' x
hi : lh s < lh s + 1
hz : ⟪lh s, z⟫ ∈ s ⁀' x
this : z = x
⊢ ⟪lh s, f z⟫ ∈ t ⁀' f x
Tactic:
simp [this, ←hts, Ht]
State after:
no goals

State before:
M : Type u_1
inst✝⁵ : Zero M
inst✝⁴ : One M
inst✝³ : Add M
inst✝² : Mul M
inst✝¹ : LT M
inst✝ : M ⊧ₘ* 𝐈𝚺₁
f : M → M
hf : 𝚺₁-Function₁ f
s✝ s x : M
Hs : Seq s
t : M
Ht : Seq t
hts : lh t = lh s
ih : ∀ i < lh s, ∀ x < s, ⟪i, x⟫ ∈ s → ⟪i, f x⟫ ∈ t
z : M
a✝ : z < s ⁀' x
hi : lh s < lh s + 1
hz : ⟪lh s, z⟫ ∈ s ⁀' x
⊢ z = x
Tactic:
simpa [Hs] using hz
State after:
no goals

State before:
case inr
M : Type u_1
inst✝⁵ : Zero M
inst✝⁴ : One M
inst✝³ : Add M
inst✝² : Mul M
inst✝¹ : LT M
inst✝ : M ⊧ₘ* 𝐈𝚺₁
f : M → M
hf : 𝚺₁-Function₁ f
s✝ s x : M
Hs : Seq s
t : M
Ht : Seq t
hts : lh t = lh s
ih : ∀ i < lh s, ∀ x < s, ⟪i, x⟫ ∈ s → ⟪i, f x⟫ ∈ t
i : M
hi✝ : i < lh s + 1
z : M
a✝ : z < s ⁀' x
hz : ⟪i, z⟫ ∈ s ⁀' x
hi : i < lh s
⊢ ⟪i, f z⟫ ∈ t ⁀' f x
Tactic:
have : ⟪i, f z⟫ ∈ t ⁀' f x ↔ ⟪i, f z⟫ ∈ t := mem_seqCons_iff_of_lt (x := f z) (z := f x) (by simpa [hts] using hi)
State after:
case inr
M : Type u_1
inst✝⁵ : Zero M
inst✝⁴ : One M
inst✝³ : Add M
inst✝² : Mul M
inst✝¹ : LT M
inst✝ : M ⊧ₘ* 𝐈𝚺₁
f : M → M
hf : 𝚺₁-Function₁ f
s✝ s x : M
Hs : Seq s
t : M
Ht : Seq t
hts : lh t = lh s
ih : ∀ i < lh s, ∀ x < s, ⟪i, x⟫ ∈ s → ⟪i, f x⟫ ∈ t
i : M
hi✝ : i < lh s + 1
z : M
a✝ : z < s ⁀' x
hz : ⟪i, z⟫ ∈ s ⁀' x
hi : i < lh s
this : ⟪i, f z⟫ ∈ t ⁀' f x ↔ ⟪i, f z⟫ ∈ t
⊢ ⟪i, f z⟫ ∈ t ⁀' f x

State before:
case inr
M : Type u_1
inst✝⁵ : Zero M
inst✝⁴ : One M
inst✝³ : Add M
inst✝² : Mul M
inst✝¹ : LT M
inst✝ : M ⊧ₘ* 𝐈𝚺₁
f : M → M
hf : 𝚺₁-Function₁ f
s✝ s x : M
Hs : Seq s
t : M
Ht : Seq t
hts : lh t = lh s
ih : ∀ i < lh s, ∀ x < s, ⟪i, x⟫ ∈ s → ⟪i, f x⟫ ∈ t
i : M
hi✝ : i < lh s + 1
z : M
a✝ : z < s ⁀' x
hz : ⟪i, z⟫ ∈ s ⁀' x
hi : i < lh s
this : ⟪i, f z⟫ ∈ t ⁀' f x ↔ ⟪i, f z⟫ ∈ t
⊢ ⟪i, f z⟫ ∈ t ⁀' f x
Tactic:
rw [this]
State after:
case inr
M : Type u_1
inst✝⁵ : Zero M
inst✝⁴ : One M
inst✝³ : Add M
inst✝² : Mul M
inst✝¹ : LT M
inst✝ : M ⊧ₘ* 𝐈𝚺₁
f : M → M
hf : 𝚺₁-Function₁ f
s✝ s x : M
Hs : Seq s
t : M
Ht : Seq t
hts : lh t = lh s
ih : ∀ i < lh s, ∀ x < s, ⟪i, x⟫ ∈ s → ⟪i, f x⟫ ∈ t
i : M
hi✝ : i < lh s + 1
z : M
a✝ : z < s ⁀' x
hz : ⟪i, z⟫ ∈ s ⁀' x
hi : i < lh s
this : ⟪i, f z⟫ ∈ t ⁀' f x ↔ ⟪i, f z⟫ ∈ t
⊢ ⟪i, f z⟫ ∈ t

State before:
case inr
M : Type u_1
inst✝⁵ : Zero M
inst✝⁴ : One M
inst✝³ : Add M
inst✝² : Mul M
inst✝¹ : LT M
inst✝ : M ⊧ₘ* 𝐈𝚺₁
f : M → M
hf : 𝚺₁-Function₁ f
s✝ s x : M
Hs : Seq s
t : M
Ht : Seq t
hts : lh t = lh s
ih : ∀ i < lh s, ∀ x < s, ⟪i, x⟫ ∈ s → ⟪i, f x⟫ ∈ t
i : M
hi✝ : i < lh s + 1
z : M
a✝ : z < s ⁀' x
hz : ⟪i, z⟫ ∈ s ⁀' x
hi : i < lh s
this : ⟪i, f z⟫ ∈ t ⁀' f x ↔ ⟪i, f z⟫ ∈ t
⊢ ⟪i, f z⟫ ∈ t
Tactic:
have : ⟪i, z⟫ ∈ s := mem_seqCons_iff_of_lt hi |>.mp hz
State after:
case inr
M : Type u_1
inst✝⁵ : Zero M
inst✝⁴ : One M
inst✝³ : Add M
inst✝² : Mul M
inst✝¹ : LT M
inst✝ : M ⊧ₘ* 𝐈𝚺₁
f : M → M
hf : 𝚺₁-Function₁ f
s✝ s x : M
Hs : Seq s
t : M
Ht : Seq t
hts : lh t = lh s
ih : ∀ i < lh s, ∀ x < s, ⟪i, x⟫ ∈ s → ⟪i, f x⟫ ∈ t
i : M
hi✝ : i < lh s + 1
z : M
a✝ : z < s ⁀' x
hz : ⟪i, z⟫ ∈ s ⁀' x
hi : i < lh s
this✝ : ⟪i, f z⟫ ∈ t ⁀' f x ↔ ⟪i, f z⟫ ∈ t
this : ⟪i, z⟫ ∈ s
⊢ ⟪i, f z⟫ ∈ t

State before:
case inr
M : Type u_1
inst✝⁵ : Zero M
inst✝⁴ : One M
inst✝³ : Add M
inst✝² : Mul M
inst✝¹ : LT M
inst✝ : M ⊧ₘ* 𝐈𝚺₁
f : M → M
hf : 𝚺₁-Function₁ f
s✝ s x : M
Hs : Seq s
t : M
Ht : Seq t
hts : lh t = lh s
ih : ∀ i < lh s, ∀ x < s, ⟪i, x⟫ ∈ s → ⟪i, f x⟫ ∈ t
i : M
hi✝ : i < lh s + 1
z : M
a✝ : z < s ⁀' x
hz : ⟪i, z⟫ ∈ s ⁀' x
hi : i < lh s
this✝ : ⟪i, f z⟫ ∈ t ⁀' f x ↔ ⟪i, f z⟫ ∈ t
this : ⟪i, z⟫ ∈ s
⊢ ⟪i, f z⟫ ∈ t
Tactic:
exact ih i hi z (lt_of_mem_rng this) this
State after:
no goals

State before:
M : Type u_1
inst✝⁵ : Zero M
inst✝⁴ : One M
inst✝³ : Add M
inst✝² : Mul M
inst✝¹ : LT M
inst✝ : M ⊧ₘ* 𝐈𝚺₁
f : M → M
hf : 𝚺₁-Function₁ f
s✝ s x : M
Hs : Seq s
t : M
Ht : Seq t
hts : lh t = lh s
ih : ∀ i < lh s, ∀ x < s, ⟪i, x⟫ ∈ s → ⟪i, f x⟫ ∈ t
i : M
hi✝ : i < lh s + 1
z : M
a✝ : z < s ⁀' x
hz : ⟪i, z⟫ ∈ s ⁀' x
hi : i < lh s
⊢ i < lh t
Tactic:
simpa [hts] using hi
State after:
no goals