Goal:
    A : Type  P : list A → A → Type  Γ : list A  Δ : list A
  ============================
   (All_fold (λ Γ : list A, P (Γ ++ Δ)) Γ
    → All_fold P Δ → All_fold P (Γ ++ Δ))


DEBUG:Going to execute:
induction 1

Goals:
    A : Type  P : list A → A → Type  Δ : list A
  ============================
   (All_fold P Δ → All_fold P ([] ++ Δ))

  
  A : Type
  P : list A → A → Type
  Δ : list A
  d : A
  Γ : list A
  X : All_fold (λ Γ : list A, P (Γ ++ Δ)) Γ
  p : P (Γ ++ Δ) d
  IHX : All_fold P Δ → All_fold P (Γ ++ Δ)
  ============================
   (All_fold P Δ → All_fold P ((d :: Γ) ++ Δ))


DEBUG:Going to execute:
simpl

Goals:
    A : Type  P : list A → A → Type  Δ : list A
  ============================
   (All_fold P Δ → All_fold P Δ)

  
  A : Type
  P : list A → A → Type
  Δ : list A
  d : A
  Γ : list A
  X : All_fold (λ Γ : list A, P (Γ ++ Δ)) Γ
  p : P (Γ ++ Δ) d
  IHX : All_fold P Δ → All_fold P (Γ ++ Δ)
  ============================
   (All_fold P Δ → All_fold P (d :: Γ ++ Δ))


DEBUG:Going to execute:
intros => //