awhecmu/canonical-drafter-extract-mathlib huggingface dataset:
-- Lean 4 proof step from Mathlib.Computability.TuringMachine.ToPartrec (goal)
Goal:
a b : Λ'
move :
  (p : Γ' → Bool) →
    (k₁ k₂ : K') → (q : Λ') → ((b : Λ') → Decidable (q = b)) → (b : Λ') → Decidable (Λ'.move p k₁ k₂ q = b)
clear :
  (p : Γ' → Bool) → (k : K') → (q : Λ') → ((b : Λ') → Decidable (q = b)) → (b : Λ') → Decidable (Λ'.clear p k q = b)
copy : (q : Λ') → ((b : Λ') → Decidable (q = b)) → (b : Λ') → Decidable (q.copy = b)
push :
  (k : K') →
    (s : Option Γ' → Option Γ') → (q : Λ') → ((b : Λ') → Decidable (q = b)) → (b : Λ') → Decidable (Λ'.push k s q = b)
⊢ Decidable (a = b)
have read : (f : Option Γ' → Λ') → ((a : Option Γ') → (b : Λ') → Decidable (f a = b)) → (b : Λ') → Decidable (read f = b)
Tactic: induction a generalizing b
Cleared hypotheses: a, b
-- Lean 4 proof step from Mathlib.Computability.TuringMachine.ToPartrec (goal)
Goal:
a b : Λ'
move :
  (p : Γ' → Bool) →
    (k₁ k₂ : K') → (q : Λ') → ((b : Λ') → Decidable (q = b)) → (b : Λ') → Decidable (Λ'.move p k₁ k₂ q = b)
clear :
  (p : Γ' → Bool) → (k : K') → (q : Λ') → ((b : Λ') → Decidable (q = b)) → (b : Λ') → Decidable (Λ'.clear p k q = b)
copy : (q : Λ') → ((b : Λ') → Decidable (q = b)) → (b : Λ') → Decidable (q.copy = b)
push :
  (k : K') →
    (s : Option Γ' → Option Γ') → (q : Λ') → ((b : Λ') → Decidable (q = b)) → (b : Λ') → Decidable (Λ'.push k s q = b)
read : (f : Option Γ' → Λ') → ((a : Option Γ') → (b : Λ') → Decidable (f a = b)) → (b : Λ') → Decidable (Λ'.read f = b)
⊢ Decidable (a = b)
have succ : (q : Λ') → ((b : Λ') → Decidable (q = b)) → (b : Λ') → Decidable (q.succ = b)
Tactic: induction a generalizing b
Cleared hypotheses: a, b
-- Lean 4 proof step from Mathlib.Computability.TuringMachine.ToPartrec (goal)
Goal:
a b : Λ'
move :
  (p : Γ' → Bool) →
    (k₁ k₂ : K') → (q : Λ') → ((b : Λ') → Decidable (q = b)) → (b : Λ') → Decidable (Λ'.move p k₁ k₂ q = b)
clear :
  (p : Γ' → Bool) → (k : K') → (q : Λ') → ((b : Λ') → Decidable (q = b)) → (b : Λ') → Decidable (Λ'.clear p k q = b)
copy : (q : Λ') → ((b : Λ') → Decidable (q = b)) → (b : Λ') → Decidable (q.copy = b)
push :
  (k : K') →
    (s : Option Γ' → Option Γ') → (q : Λ') → ((b : Λ') → Decidable (q = b)) → (b : Λ') → Decidable (Λ'.push k s q = b)
read : (f : Option Γ' → Λ') → ((a : Option Γ') → (b : Λ') → Decidable (f a = b)) → (b : Λ') → Decidable (Λ'.read f = b)
succ : (q : Λ') → ((b : Λ') → Decidable (q = b)) → (b : Λ') → Decidable (q.succ = b)
⊢ Decidable (a = b)
have pred : (q₁ q₂ : Λ') → ((b : Λ') → Decidable (q₁ = b)) → ((b : Λ') → Decidable (q₂ = b)) → (b : Λ') → Decidable (q₁.pred q₂ = b)
Tactic: induction a generalizing b
Cleared hypotheses: a, b
-- Lean 4 proof step from Mathlib.Computability.TuringMachine.ToPartrec (goal)
Goal:
a b : Λ'
move :
  (p : Γ' → Bool) →
    (k₁ k₂ : K') → (q : Λ') → ((b : Λ') → Decidable (q = b)) → (b : Λ') → Decidable (Λ'.move p k₁ k₂ q = b)
clear :
  (p : Γ' → Bool) → (k : K') → (q : Λ') → ((b : Λ') → Decidable (q = b)) → (b : Λ') → Decidable (Λ'.clear p k q = b)
copy : (q : Λ') → ((b : Λ') → Decidable (q = b)) → (b : Λ') → Decidable (q.copy = b)
push :
  (k : K') →
    (s : Option Γ' → Option Γ') → (q : Λ') → ((b : Λ') → Decidable (q = b)) → (b : Λ') → Decidable (Λ'.push k s q = b)
read : (f : Option Γ' → Λ') → ((a : Option Γ') → (b : Λ') → Decidable (f a = b)) → (b : Λ') → Decidable (Λ'.read f = b)
succ : (q : Λ') → ((b : Λ') → Decidable (q = b)) → (b : Λ') → Decidable (q.succ = b)
pred :
  (q₁ q₂ : Λ') →
    ((b : Λ') → Decidable (q₁ = b)) → ((b : Λ') → Decidable (q₂ = b)) → (b : Λ') → Decidable (q₁.pred q₂ = b)
⊢ Decidable (a = b)
have ret : (k : Cont') → (b : Λ') → Decidable (ret k = b)
Tactic: induction a generalizing b
Cleared hypotheses: a, b
-- Lean 4 proof step from Mathlib.Computability.TuringMachine.ToPartrec (goal)
Goal:
p : Γ' → Bool
k₁ k₂ : K'
q : Λ'
q_ih : (b : Λ') → Decidable (q = b)
b : Λ'
⊢ Decidable (move p k₁ k₂ q = b)
have move : (p_1 : Γ' → Bool) → (k₁_1 k₂_1 : K') → (q_1 : Λ') → Decidable (move p k₁ k₂ q = move p_1 k₁_1 k₂_1 q_1)
Tactic: cases b
Cleared hypotheses: b
-- Lean 4 proof step from Mathlib.Computability.TuringMachine.ToPartrec (goal)
Goal:
p : Γ' → Bool
k₁ k₂ : K'
q : Λ'
q_ih : (b : Λ') → Decidable (q = b)
b : Λ'
move : (p_1 : Γ' → Bool) → (k₁_1 k₂_1 : K') → (q_1 : Λ') → Decidable (Λ'.move p k₁ k₂ q = Λ'.move p_1 k₁_1 k₂_1 q_1)
⊢ Decidable (Λ'.move p k₁ k₂ q = b)
have move₁ : (p_1 : Γ' → Bool) → (k : K') → (q_1 : Λ') → Decidable (Λ'.move p k₁ k₂ q = clear p_1 k q_1)
Tactic: cases b
Cleared hypotheses: b
-- Lean 4 proof step from Mathlib.Computability.TuringMachine.ToPartrec (goal)
Goal:
p : Γ' → Bool
k₁ k₂ : K'
q : Λ'
q_ih : (b : Λ') → Decidable (q = b)
b : Λ'
move : (p_1 : Γ' → Bool) → (k₁_1 k₂_1 : K') → (q_1 : Λ') → Decidable (Λ'.move p k₁ k₂ q = Λ'.move p_1 k₁_1 k₂_1 q_1)
move₁ : (p_1 : Γ' → Bool) → (k : K') → (q_1 : Λ') → Decidable (Λ'.move p k₁ k₂ q = clear p_1 k q_1)
⊢ Decidable (Λ'.move p k₁ k₂ q = b)
have move₂ : (q_1 : Λ') → Decidable (Λ'.move p k₁ k₂ q = q_1.copy)
Tactic: cases b
Cleared hypotheses: b
-- Lean 4 proof step from Mathlib.Computability.TuringMachine.ToPartrec (goal)
Goal:
p : Γ' → Bool
k₁ k₂ : K'
q : Λ'
q_ih : (b : Λ') → Decidable (q = b)
b : Λ'
move : (p_1 : Γ' → Bool) → (k₁_1 k₂_1 : K') → (q_1 : Λ') → Decidable (Λ'.move p k₁ k₂ q = Λ'.move p_1 k₁_1 k₂_1 q_1)
move₁ : (p_1 : Γ' → Bool) → (k : K') → (q_1 : Λ') → Decidable (Λ'.move p k₁ k₂ q = clear p_1 k q_1)
move₂ : (q_1 : Λ') → Decidable (Λ'.move p k₁ k₂ q = q_1.copy)
⊢ Decidable (Λ'.move p k₁ k₂ q = b)
have move₃ : (k : K') → (s : Option Γ' → Option Γ') → (q_1 : Λ') → Decidable (Λ'.move p k₁ k₂ q = push k s q_1)
Tactic: cases b
Cleared hypotheses: b
-- Lean 4 proof step from Mathlib.Computability.TuringMachine.ToPartrec (goal)
Goal:
p : Γ' → Bool
k₁ k₂ : K'
q : Λ'
q_ih : (b : Λ') → Decidable (q = b)
b : Λ'
move : (p_1 : Γ' → Bool) → (k₁_1 k₂_1 : K') → (q_1 : Λ') → Decidable (Λ'.move p k₁ k₂ q = Λ'.move p_1 k₁_1 k₂_1 q_1)
move₁ : (p_1 : Γ' → Bool) → (k : K') → (q_1 : Λ') → Decidable (Λ'.move p k₁ k₂ q = clear p_1 k q_1)
move₂ : (q_1 : Λ') → Decidable (Λ'.move p k₁ k₂ q = q_1.copy)
move₃ : (k : K') → (s : Option Γ' → Option Γ') → (q_1 : Λ') → Decidable (Λ'.move p k₁ k₂ q = push k s q_1)
⊢ Decidable (Λ'.move p k₁ k₂ q = b)
have move₄ : (f : Option Γ' → Λ') → Decidable (Λ'.move p k₁ k₂ q = read f)
Tactic: cases b
Cleared hypotheses: b
-- Lean 4 proof step from Mathlib.Computability.TuringMachine.ToPartrec (goal)
Goal:
p : Γ' → Bool
k₁ k₂ : K'
q : Λ'
q_ih : (b : Λ') → Decidable (q = b)
b : Λ'
move : (p_1 : Γ' → Bool) → (k₁_1 k₂_1 : K') → (q_1 : Λ') → Decidable (Λ'.move p k₁ k₂ q = Λ'.move p_1 k₁_1 k₂_1 q_1)
move₁ : (p_1 : Γ' → Bool) → (k : K') → (q_1 : Λ') → Decidable (Λ'.move p k₁ k₂ q = clear p_1 k q_1)
move₂ : (q_1 : Λ') → Decidable (Λ'.move p k₁ k₂ q = q_1.copy)
move₃ : (k : K') → (s : Option Γ' → Option Γ') → (q_1 : Λ') → Decidable (Λ'.move p k₁ k₂ q = push k s q_1)
move₄ : (f : Option Γ' → Λ') → Decidable (Λ'.move p k₁ k₂ q = read f)
⊢ Decidable (Λ'.move p k₁ k₂ q = b)
have move₅ : (q_1 : Λ') → Decidable (Λ'.move p k₁ k₂ q = q_1.succ)
Tactic: cases b
Cleared hypotheses: b
-- Lean 4 proof step from Mathlib.Computability.TuringMachine.ToPartrec (goal)
Goal:
p : Γ' → Bool
k₁ k₂ : K'
q : Λ'
q_ih : (b : Λ') → Decidable (q = b)
b : Λ'
move : (p_1 : Γ' → Bool) → (k₁_1 k₂_1 : K') → (q_1 : Λ') → Decidable (Λ'.move p k₁ k₂ q = Λ'.move p_1 k₁_1 k₂_1 q_1)
move₁ : (p_1 : Γ' → Bool) → (k : K') → (q_1 : Λ') → Decidable (Λ'.move p k₁ k₂ q = clear p_1 k q_1)
move₂ : (q_1 : Λ') → Decidable (Λ'.move p k₁ k₂ q = q_1.copy)
move₃ : (k : K') → (s : Option Γ' → Option Γ') → (q_1 : Λ') → Decidable (Λ'.move p k₁ k₂ q = push k s q_1)
move₄ : (f : Option Γ' → Λ') → Decidable (Λ'.move p k₁ k₂ q = read f)
move₅ : (q_1 : Λ') → Decidable (Λ'.move p k₁ k₂ q = q_1.succ)
⊢ Decidable (Λ'.move p k₁ k₂ q = b)
have move₆ : (q₁ q₂ : Λ') → Decidable (Λ'.move p k₁ k₂ q = q₁.pred q₂)
Tactic: cases b
Cleared hypotheses: b
-- Lean 4 proof step from Mathlib.Computability.TuringMachine.ToPartrec (goal)
Goal:
p : Γ' → Bool
k₁ k₂ : K'
q : Λ'
q_ih : (b : Λ') → Decidable (q = b)
b : Λ'
move : (p_1 : Γ' → Bool) → (k₁_1 k₂_1 : K') → (q_1 : Λ') → Decidable (Λ'.move p k₁ k₂ q = Λ'.move p_1 k₁_1 k₂_1 q_1)
move₁ : (p_1 : Γ' → Bool) → (k : K') → (q_1 : Λ') → Decidable (Λ'.move p k₁ k₂ q = clear p_1 k q_1)
move₂ : (q_1 : Λ') → Decidable (Λ'.move p k₁ k₂ q = q_1.copy)
move₃ : (k : K') → (s : Option Γ' → Option Γ') → (q_1 : Λ') → Decidable (Λ'.move p k₁ k₂ q = push k s q_1)
move₄ : (f : Option Γ' → Λ') → Decidable (Λ'.move p k₁ k₂ q = read f)
move₅ : (q_1 : Λ') → Decidable (Λ'.move p k₁ k₂ q = q_1.succ)
move₆ : (q₁ q₂ : Λ') → Decidable (Λ'.move p k₁ k₂ q = q₁.pred q₂)
⊢ Decidable (Λ'.move p k₁ k₂ q = b)
have move₇ : (k : Cont') → Decidable (Λ'.move p k₁ k₂ q = ret k)
Tactic: cases b
Cleared hypotheses: b
-- Lean 4 proof step from Mathlib.Computability.TuringMachine.ToPartrec (goal)
Goal:
p : Γ' → Bool
k : K'
q : Λ'
q_ih : (b : Λ') → Decidable (q = b)
b : Λ'
⊢ Decidable (clear p k q = b)
have clear : (p_1 : Γ' → Bool) → (k₁ k₂ : K') → (q_1 : Λ') → Decidable (clear p k q = move p_1 k₁ k₂ q_1)
Tactic: cases b
Cleared hypotheses: b
-- Lean 4 proof step from Mathlib.Computability.TuringMachine.ToPartrec (goal)
Goal:
p : Γ' → Bool
k : K'
q : Λ'
q_ih : (b : Λ') → Decidable (q = b)
b : Λ'
clear : (p_1 : Γ' → Bool) → (k₁ k₂ : K') → (q_1 : Λ') → Decidable (Λ'.clear p k q = move p_1 k₁ k₂ q_1)
⊢ Decidable (Λ'.clear p k q = b)
have clear₁ : (p_1 : Γ' → Bool) → (k_1 : K') → (q_1 : Λ') → Decidable (Λ'.clear p k q = Λ'.clear p_1 k_1 q_1)
Tactic: cases b
Cleared hypotheses: b
-- Lean 4 proof step from Mathlib.Computability.TuringMachine.ToPartrec (goal)
Goal:
p : Γ' → Bool
k : K'
q : Λ'
q_ih : (b : Λ') → Decidable (q = b)
b : Λ'
clear : (p_1 : Γ' → Bool) → (k₁ k₂ : K') → (q_1 : Λ') → Decidable (Λ'.clear p k q = move p_1 k₁ k₂ q_1)
clear₁ : (p_1 : Γ' → Bool) → (k_1 : K') → (q_1 : Λ') → Decidable (Λ'.clear p k q = Λ'.clear p_1 k_1 q_1)
⊢ Decidable (Λ'.clear p k q = b)
have clear₂ : (q_1 : Λ') → Decidable (Λ'.clear p k q = q_1.copy)
Tactic: cases b
Cleared hypotheses: b
-- Lean 4 proof step from Mathlib.Computability.TuringMachine.ToPartrec (goal)
Goal:
p : Γ' → Bool
k : K'
q : Λ'
q_ih : (b : Λ') → Decidable (q = b)
b : Λ'
clear : (p_1 : Γ' → Bool) → (k₁ k₂ : K') → (q_1 : Λ') → Decidable (Λ'.clear p k q = move p_1 k₁ k₂ q_1)
clear₁ : (p_1 : Γ' → Bool) → (k_1 : K') → (q_1 : Λ') → Decidable (Λ'.clear p k q = Λ'.clear p_1 k_1 q_1)
clear₂ : (q_1 : Λ') → Decidable (Λ'.clear p k q = q_1.copy)
⊢ Decidable (Λ'.clear p k q = b)
have clear₃ : (k_1 : K') → (s : Option Γ' → Option Γ') → (q_1 : Λ') → Decidable (Λ'.clear p k q = push k_1 s q_1)
Tactic: cases b
Cleared hypotheses: b
-- Lean 4 proof step from Mathlib.Computability.TuringMachine.ToPartrec (goal)
Goal:
p : Γ' → Bool
k : K'
q : Λ'
q_ih : (b : Λ') → Decidable (q = b)
b : Λ'
clear : (p_1 : Γ' → Bool) → (k₁ k₂ : K') → (q_1 : Λ') → Decidable (Λ'.clear p k q = move p_1 k₁ k₂ q_1)
clear₁ : (p_1 : Γ' → Bool) → (k_1 : K') → (q_1 : Λ') → Decidable (Λ'.clear p k q = Λ'.clear p_1 k_1 q_1)
clear₂ : (q_1 : Λ') → Decidable (Λ'.clear p k q = q_1.copy)
clear₃ : (k_1 : K') → (s : Option Γ' → Option Γ') → (q_1 : Λ') → Decidable (Λ'.clear p k q = push k_1 s q_1)
⊢ Decidable (Λ'.clear p k q = b)
have clear₄ : (f : Option Γ' → Λ') → Decidable (Λ'.clear p k q = read f)
Tactic: cases b
Cleared hypotheses: b
-- Lean 4 proof step from Mathlib.Computability.TuringMachine.ToPartrec (goal)
Goal:
p : Γ' → Bool
k : K'
q : Λ'
q_ih : (b : Λ') → Decidable (q = b)
b : Λ'
clear : (p_1 : Γ' → Bool) → (k₁ k₂ : K') → (q_1 : Λ') → Decidable (Λ'.clear p k q = move p_1 k₁ k₂ q_1)
clear₁ : (p_1 : Γ' → Bool) → (k_1 : K') → (q_1 : Λ') → Decidable (Λ'.clear p k q = Λ'.clear p_1 k_1 q_1)
clear₂ : (q_1 : Λ') → Decidable (Λ'.clear p k q = q_1.copy)
clear₃ : (k_1 : K') → (s : Option Γ' → Option Γ') → (q_1 : Λ') → Decidable (Λ'.clear p k q = push k_1 s q_1)
clear₄ : (f : Option Γ' → Λ') → Decidable (Λ'.clear p k q = read f)
⊢ Decidable (Λ'.clear p k q = b)
have clear₅ : (q_1 : Λ') → Decidable (Λ'.clear p k q = q_1.succ)
Tactic: cases b
Cleared hypotheses: b
-- Lean 4 proof step from Mathlib.Computability.TuringMachine.ToPartrec (goal)
Goal:
p : Γ' → Bool
k : K'
q : Λ'
q_ih : (b : Λ') → Decidable (q = b)
b : Λ'
clear : (p_1 : Γ' → Bool) → (k₁ k₂ : K') → (q_1 : Λ') → Decidable (Λ'.clear p k q = move p_1 k₁ k₂ q_1)
clear₁ : (p_1 : Γ' → Bool) → (k_1 : K') → (q_1 : Λ') → Decidable (Λ'.clear p k q = Λ'.clear p_1 k_1 q_1)
clear₂ : (q_1 : Λ') → Decidable (Λ'.clear p k q = q_1.copy)
clear₃ : (k_1 : K') → (s : Option Γ' → Option Γ') → (q_1 : Λ') → Decidable (Λ'.clear p k q = push k_1 s q_1)
clear₄ : (f : Option Γ' → Λ') → Decidable (Λ'.clear p k q = read f)
clear₅ : (q_1 : Λ') → Decidable (Λ'.clear p k q = q_1.succ)
⊢ Decidable (Λ'.clear p k q = b)
have clear₆ : (q₁ q₂ : Λ') → Decidable (Λ'.clear p k q = q₁.pred q₂)
Tactic: cases b
Cleared hypotheses: b
-- Lean 4 proof step from Mathlib.Computability.TuringMachine.ToPartrec (goal)
Goal:
p : Γ' → Bool
k : K'
q : Λ'
q_ih : (b : Λ') → Decidable (q = b)
b : Λ'
clear : (p_1 : Γ' → Bool) → (k₁ k₂ : K') → (q_1 : Λ') → Decidable (Λ'.clear p k q = move p_1 k₁ k₂ q_1)
clear₁ : (p_1 : Γ' → Bool) → (k_1 : K') → (q_1 : Λ') → Decidable (Λ'.clear p k q = Λ'.clear p_1 k_1 q_1)
clear₂ : (q_1 : Λ') → Decidable (Λ'.clear p k q = q_1.copy)
clear₃ : (k_1 : K') → (s : Option Γ' → Option Γ') → (q_1 : Λ') → Decidable (Λ'.clear p k q = push k_1 s q_1)
clear₄ : (f : Option Γ' → Λ') → Decidable (Λ'.clear p k q = read f)
clear₅ : (q_1 : Λ') → Decidable (Λ'.clear p k q = q_1.succ)
clear₆ : (q₁ q₂ : Λ') → Decidable (Λ'.clear p k q = q₁.pred q₂)
⊢ Decidable (Λ'.clear p k q = b)
have clear₇ : (k_1 : Cont') → Decidable (Λ'.clear p k q = ret k_1)
Tactic: cases b
Cleared hypotheses: b
-- Lean 4 proof step from Mathlib.Computability.TuringMachine.ToPartrec (goal)
Goal:
q : Λ'
q_ih : (b : Λ') → Decidable (q = b)
b : Λ'
⊢ Decidable (q.copy = b)
have copy : (p : Γ' → Bool) → (k₁ k₂ : K') → (q_1 : Λ') → Decidable (q.copy = move p k₁ k₂ q_1)
Tactic: cases b
Cleared hypotheses: b
-- Lean 4 proof step from Mathlib.Computability.TuringMachine.ToPartrec (goal)
Goal:
q : Λ'
q_ih : (b : Λ') → Decidable (q = b)
b : Λ'
copy : (p : Γ' → Bool) → (k₁ k₂ : K') → (q_1 : Λ') → Decidable (q.copy = move p k₁ k₂ q_1)
⊢ Decidable (q.copy = b)
have copy₁ : (p : Γ' → Bool) → (k : K') → (q_1 : Λ') → Decidable (q.copy = clear p k q_1)
Tactic: cases b
Cleared hypotheses: b
-- Lean 4 proof step from Mathlib.Computability.TuringMachine.ToPartrec (goal)
Goal:
q : Λ'
q_ih : (b : Λ') → Decidable (q = b)
b : Λ'
copy : (p : Γ' → Bool) → (k₁ k₂ : K') → (q_1 : Λ') → Decidable (q.copy = move p k₁ k₂ q_1)
copy₁ : (p : Γ' → Bool) → (k : K') → (q_1 : Λ') → Decidable (q.copy = clear p k q_1)
⊢ Decidable (q.copy = b)
have copy₂ : (q_1 : Λ') → Decidable (q.copy = q_1.copy)
Tactic: cases b
Cleared hypotheses: b
-- Lean 4 proof step from Mathlib.Computability.TuringMachine.ToPartrec (goal)
Goal:
q : Λ'
q_ih : (b : Λ') → Decidable (q = b)
b : Λ'
copy : (p : Γ' → Bool) → (k₁ k₂ : K') → (q_1 : Λ') → Decidable (q.copy = move p k₁ k₂ q_1)
copy₁ : (p : Γ' → Bool) → (k : K') → (q_1 : Λ') → Decidable (q.copy = clear p k q_1)
copy₂ : (q_1 : Λ') → Decidable (q.copy = q_1.copy)
⊢ Decidable (q.copy = b)
have copy₃ : (k : K') → (s : Option Γ' → Option Γ') → (q_1 : Λ') → Decidable (q.copy = push k s q_1)
Tactic: cases b
Cleared hypotheses: b
-- Lean 4 proof step from Mathlib.Computability.TuringMachine.ToPartrec (goal)
Goal:
q : Λ'
q_ih : (b : Λ') → Decidable (q = b)
b : Λ'
copy : (p : Γ' → Bool) → (k₁ k₂ : K') → (q_1 : Λ') → Decidable (q.copy = move p k₁ k₂ q_1)
copy₁ : (p : Γ' → Bool) → (k : K') → (q_1 : Λ') → Decidable (q.copy = clear p k q_1)
copy₂ : (q_1 : Λ') → Decidable (q.copy = q_1.copy)
copy₃ : (k : K') → (s : Option Γ' → Option Γ') → (q_1 : Λ') → Decidable (q.copy = push k s q_1)
⊢ Decidable (q.copy = b)
have copy₄ : (f : Option Γ' → Λ') → Decidable (q.copy = read f)
Tactic: cases b
Cleared hypotheses: b
-- Lean 4 proof step from Mathlib.Computability.TuringMachine.ToPartrec (goal)
Goal:
q : Λ'
q_ih : (b : Λ') → Decidable (q = b)
b : Λ'
copy : (p : Γ' → Bool) → (k₁ k₂ : K') → (q_1 : Λ') → Decidable (q.copy = move p k₁ k₂ q_1)
copy₁ : (p : Γ' → Bool) → (k : K') → (q_1 : Λ') → Decidable (q.copy = clear p k q_1)
copy₂ : (q_1 : Λ') → Decidable (q.copy = q_1.copy)
copy₃ : (k : K') → (s : Option Γ' → Option Γ') → (q_1 : Λ') → Decidable (q.copy = push k s q_1)
copy₄ : (f : Option Γ' → Λ') → Decidable (q.copy = read f)
⊢ Decidable (q.copy = b)
have copy₅ : (q_1 : Λ') → Decidable (q.copy = q_1.succ)
Tactic: cases b
Cleared hypotheses: b
-- Lean 4 proof step from Mathlib.Computability.TuringMachine.ToPartrec (goal)
Goal:
q : Λ'
q_ih : (b : Λ') → Decidable (q = b)
b : Λ'
copy : (p : Γ' → Bool) → (k₁ k₂ : K') → (q_1 : Λ') → Decidable (q.copy = move p k₁ k₂ q_1)
copy₁ : (p : Γ' → Bool) → (k : K') → (q_1 : Λ') → Decidable (q.copy = clear p k q_1)
copy₂ : (q_1 : Λ') → Decidable (q.copy = q_1.copy)
copy₃ : (k : K') → (s : Option Γ' → Option Γ') → (q_1 : Λ') → Decidable (q.copy = push k s q_1)
copy₄ : (f : Option Γ' → Λ') → Decidable (q.copy = read f)
copy₅ : (q_1 : Λ') → Decidable (q.copy = q_1.succ)
⊢ Decidable (q.copy = b)
have copy₆ : (q₁ q₂ : Λ') → Decidable (q.copy = q₁.pred q₂)
Tactic: cases b
Cleared hypotheses: b
-- Lean 4 proof step from Mathlib.Computability.TuringMachine.ToPartrec (goal)
Goal:
q : Λ'
q_ih : (b : Λ') → Decidable (q = b)
b : Λ'
copy : (p : Γ' → Bool) → (k₁ k₂ : K') → (q_1 : Λ') → Decidable (q.copy = move p k₁ k₂ q_1)
copy₁ : (p : Γ' → Bool) → (k : K') → (q_1 : Λ') → Decidable (q.copy = clear p k q_1)
copy₂ : (q_1 : Λ') → Decidable (q.copy = q_1.copy)
copy₃ : (k : K') → (s : Option Γ' → Option Γ') → (q_1 : Λ') → Decidable (q.copy = push k s q_1)
copy₄ : (f : Option Γ' → Λ') → Decidable (q.copy = read f)
copy₅ : (q_1 : Λ') → Decidable (q.copy = q_1.succ)
copy₆ : (q₁ q₂ : Λ') → Decidable (q.copy = q₁.pred q₂)
⊢ Decidable (q.copy = b)
have copy₇ : (k : Cont') → Decidable (q.copy = ret k)
Tactic: cases b
Cleared hypotheses: b
-- Lean 4 proof step from Mathlib.Computability.TuringMachine.ToPartrec (goal)
Goal:
k : K'
s : Option Γ' → Option Γ'
q : Λ'
q_ih : (b : Λ') → Decidable (q = b)
b : Λ'
⊢ Decidable (push k s q = b)
have push : (p : Γ' → Bool) → (k₁ k₂ : K') → (q_1 : Λ') → Decidable (push k s q = move p k₁ k₂ q_1)
Tactic: cases b
Cleared hypotheses: b
-- Lean 4 proof step from Mathlib.Computability.TuringMachine.ToPartrec (goal)
Goal:
k : K'
s : Option Γ' → Option Γ'
q : Λ'
q_ih : (b : Λ') → Decidable (q = b)
b : Λ'
push : (p : Γ' → Bool) → (k₁ k₂ : K') → (q_1 : Λ') → Decidable (Λ'.push k s q = move p k₁ k₂ q_1)
⊢ Decidable (Λ'.push k s q = b)
have push₁ : (p : Γ' → Bool) → (k_1 : K') → (q_1 : Λ') → Decidable (Λ'.push k s q = clear p k_1 q_1)
Tactic: cases b
Cleared hypotheses: b
-- Lean 4 proof step from Mathlib.Computability.TuringMachine.ToPartrec (goal)
Goal:
k : K'
s : Option Γ' → Option Γ'
q : Λ'
q_ih : (b : Λ') → Decidable (q = b)
b : Λ'
push : (p : Γ' → Bool) → (k₁ k₂ : K') → (q_1 : Λ') → Decidable (Λ'.push k s q = move p k₁ k₂ q_1)
push₁ : (p : Γ' → Bool) → (k_1 : K') → (q_1 : Λ') → Decidable (Λ'.push k s q = clear p k_1 q_1)
⊢ Decidable (Λ'.push k s q = b)
have push₂ : (q_1 : Λ') → Decidable (Λ'.push k s q = q_1.copy)
Tactic: cases b
Cleared hypotheses: b
-- Lean 4 proof step from Mathlib.Computability.TuringMachine.ToPartrec (goal)
Goal:
k : K'
s : Option Γ' → Option Γ'
q : Λ'
q_ih : (b : Λ') → Decidable (q = b)
b : Λ'
push : (p : Γ' → Bool) → (k₁ k₂ : K') → (q_1 : Λ') → Decidable (Λ'.push k s q = move p k₁ k₂ q_1)
push₁ : (p : Γ' → Bool) → (k_1 : K') → (q_1 : Λ') → Decidable (Λ'.push k s q = clear p k_1 q_1)
push₂ : (q_1 : Λ') → Decidable (Λ'.push k s q = q_1.copy)
⊢ Decidable (Λ'.push k s q = b)
have push₃ : (k_1 : K') → (s_1 : Option Γ' → Option Γ') → (q_1 : Λ') → Decidable (Λ'.push k s q = Λ'.push k_1 s_1 q_1)
Tactic: cases b
Cleared hypotheses: b
-- Lean 4 proof step from Mathlib.Computability.TuringMachine.ToPartrec (goal)
Goal:
k : K'
s : Option Γ' → Option Γ'
q : Λ'
q_ih : (b : Λ') → Decidable (q = b)
b : Λ'
push : (p : Γ' → Bool) → (k₁ k₂ : K') → (q_1 : Λ') → Decidable (Λ'.push k s q = move p k₁ k₂ q_1)
push₁ : (p : Γ' → Bool) → (k_1 : K') → (q_1 : Λ') → Decidable (Λ'.push k s q = clear p k_1 q_1)
push₂ : (q_1 : Λ') → Decidable (Λ'.push k s q = q_1.copy)
push₃ : (k_1 : K') → (s_1 : Option Γ' → Option Γ') → (q_1 : Λ') → Decidable (Λ'.push k s q = Λ'.push k_1 s_1 q_1)
⊢ Decidable (Λ'.push k s q = b)
have push₄ : (f : Option Γ' → Λ') → Decidable (Λ'.push k s q = read f)
Tactic: cases b
Cleared hypotheses: b
-- Lean 4 proof step from Mathlib.Computability.TuringMachine.ToPartrec (goal)
Goal:
k : K'
s : Option Γ' → Option Γ'
q : Λ'
q_ih : (b : Λ') → Decidable (q = b)
b : Λ'
push : (p : Γ' → Bool) → (k₁ k₂ : K') → (q_1 : Λ') → Decidable (Λ'.push k s q = move p k₁ k₂ q_1)
push₁ : (p : Γ' → Bool) → (k_1 : K') → (q_1 : Λ') → Decidable (Λ'.push k s q = clear p k_1 q_1)
push₂ : (q_1 : Λ') → Decidable (Λ'.push k s q = q_1.copy)
push₃ : (k_1 : K') → (s_1 : Option Γ' → Option Γ') → (q_1 : Λ') → Decidable (Λ'.push k s q = Λ'.push k_1 s_1 q_1)
push₄ : (f : Option Γ' → Λ') → Decidable (Λ'.push k s q = read f)
⊢ Decidable (Λ'.push k s q = b)
have push₅ : (q_1 : Λ') → Decidable (Λ'.push k s q = q_1.succ)
Tactic: cases b
Cleared hypotheses: b
-- Lean 4 proof step from Mathlib.Computability.TuringMachine.ToPartrec (goal)
Goal:
k : K'
s : Option Γ' → Option Γ'
q : Λ'
q_ih : (b : Λ') → Decidable (q = b)
b : Λ'
push : (p : Γ' → Bool) → (k₁ k₂ : K') → (q_1 : Λ') → Decidable (Λ'.push k s q = move p k₁ k₂ q_1)
push₁ : (p : Γ' → Bool) → (k_1 : K') → (q_1 : Λ') → Decidable (Λ'.push k s q = clear p k_1 q_1)
push₂ : (q_1 : Λ') → Decidable (Λ'.push k s q = q_1.copy)
push₃ : (k_1 : K') → (s_1 : Option Γ' → Option Γ') → (q_1 : Λ') → Decidable (Λ'.push k s q = Λ'.push k_1 s_1 q_1)
push₄ : (f : Option Γ' → Λ') → Decidable (Λ'.push k s q = read f)
push₅ : (q_1 : Λ') → Decidable (Λ'.push k s q = q_1.succ)
⊢ Decidable (Λ'.push k s q = b)
have push₆ : (q₁ q₂ : Λ') → Decidable (Λ'.push k s q = q₁.pred q₂)
Tactic: cases b
Cleared hypotheses: b
-- Lean 4 proof step from Mathlib.Computability.TuringMachine.ToPartrec (goal)
Goal:
k : K'
s : Option Γ' → Option Γ'
q : Λ'
q_ih : (b : Λ') → Decidable (q = b)
b : Λ'
push : (p : Γ' → Bool) → (k₁ k₂ : K') → (q_1 : Λ') → Decidable (Λ'.push k s q = move p k₁ k₂ q_1)
push₁ : (p : Γ' → Bool) → (k_1 : K') → (q_1 : Λ') → Decidable (Λ'.push k s q = clear p k_1 q_1)
push₂ : (q_1 : Λ') → Decidable (Λ'.push k s q = q_1.copy)
push₃ : (k_1 : K') → (s_1 : Option Γ' → Option Γ') → (q_1 : Λ') → Decidable (Λ'.push k s q = Λ'.push k_1 s_1 q_1)
push₄ : (f : Option Γ' → Λ') → Decidable (Λ'.push k s q = read f)
push₅ : (q_1 : Λ') → Decidable (Λ'.push k s q = q_1.succ)
push₆ : (q₁ q₂ : Λ') → Decidable (Λ'.push k s q = q₁.pred q₂)
⊢ Decidable (Λ'.push k s q = b)
have push₇ : (k_1 : Cont') → Decidable (Λ'.push k s q = ret k_1)
Tactic: cases b
Cleared hypotheses: b
-- Lean 4 proof step from Mathlib.Computability.TuringMachine.ToPartrec (goal)
Goal:
f : Option Γ' → Λ'
f_ih : (a : Option Γ') → (b : Λ') → Decidable (f a = b)
b : Λ'
⊢ Decidable (read f = b)
have read : (p : Γ' → Bool) → (k₁ k₂ : K') → (q : Λ') → Decidable (read f = move p k₁ k₂ q)
Tactic: cases b
Cleared hypotheses: b
-- Lean 4 proof step from Mathlib.Computability.TuringMachine.ToPartrec (goal)
Goal:
f : Option Γ' → Λ'
f_ih : (a : Option Γ') → (b : Λ') → Decidable (f a = b)
b : Λ'
read : (p : Γ' → Bool) → (k₁ k₂ : K') → (q : Λ') → Decidable (Λ'.read f = move p k₁ k₂ q)
⊢ Decidable (Λ'.read f = b)
have read₁ : (p : Γ' → Bool) → (k : K') → (q : Λ') → Decidable (Λ'.read f = clear p k q)
Tactic: cases b
Cleared hypotheses: b
-- Lean 4 proof step from Mathlib.Computability.TuringMachine.ToPartrec (goal)
Goal:
f : Option Γ' → Λ'
f_ih : (a : Option Γ') → (b : Λ') → Decidable (f a = b)
b : Λ'
read : (p : Γ' → Bool) → (k₁ k₂ : K') → (q : Λ') → Decidable (Λ'.read f = move p k₁ k₂ q)
read₁ : (p : Γ' → Bool) → (k : K') → (q : Λ') → Decidable (Λ'.read f = clear p k q)
⊢ Decidable (Λ'.read f = b)
have read₂ : (q : Λ') → Decidable (Λ'.read f = q.copy)
Tactic: cases b
Cleared hypotheses: b