(* Specifications: *)
Lemma fold_right_perm : forall (A B : Set) (f : B -> A -> A) (o : A) (l0 l1 : list B) (x : B), (forall (a b : B) (c : A), f a (f b c) = f b (f a c)) -> fold_right f o (l0 ++ x :: l1) = fold_right f o (x :: l0 ++ l1).
Lemma plus_O : forall n : nat, n + 0 = n.
Lemma n_Sn_false : forall n : nat, n = S n -> False.
Lemma le_reg : forall m n : nat, n <= m -> S n <= S m.
Lemma eq_lt_trans : forall n m p : nat, n = m -> m < p -> n < p.
Lemma S_reg : forall n m : nat, n = m -> S n = S m.
Lemma plus_reg : forall l m n : nat, m = n -> l + m = l + n.
Lemma lt_plus_assoc_l : forall n m k l : nat, n + m + k < l -> n + (m + k) < l.
Lemma my_lt_weak : forall n m : nat, S n < m -> n < m.
Lemma derivable_eq : forall (context context' : flist) (a a' : form), context = context' -> a = a' -> Derivable context a -> Derivable context' a'.
Lemma derivable_subst : forall (i : Int) (g : form) (context : flist) (a : form), Derivable context a -> Derivable (subst_list i g context) (subst_form i g a).
Lemma snd_order_inst : forall (context : flist) (i : Int), Derivable context (Atom i) -> below_list context i -> forall b : form, Derivable context b.
Lemma derivable_weak : forall (context : flist) (a b : form), Derivable context a -> Derivable (b :: context) a.
Lemma derivable_weak_list : forall (context1 context2 : flist) (a : form), Derivable context1 a -> Derivable (context2 ++ context1) a.
Lemma derivable_cut_aux : forall (context : flist) (t : proof_term) (b : form), derives context t b -> forall (a : form) (l1 l2 : flist), context = l1 ++ a :: l2 -> Derivable fnil a -> Derivable (l1 ++ l2) b.
Lemma derivable_cut : forall (context : flist) (a b : form), Derivable fnil a -> Derivable (a :: context) b -> Derivable context b.
Lemma derivable_cut_merge : forall (context : flist) (a b : form), Derivable context a -> Derivable (a :: context) b -> Derivable context b.
Lemma derivable_a_imp_a : forall a : form, Derivable fnil (Imp a a).
Lemma derivable_a_and_b__derivable_a : forall (a b : form) (context : flist), Derivable context (AndF a b) -> Derivable context a.
Lemma derivable_a_and_b__derivable_b : forall (a b : form) (context : flist), Derivable context (AndF a b) -> Derivable context b.
Lemma derivable_falsum_or_a__derivable_a : forall (a : form) (context : flist), Derivable context (OrF Falsum a) -> Derivable context a.
Lemma derivable_a_or_falsum__derivable_a : forall (a : form) (context : flist), Derivable context (OrF a Falsum) -> Derivable context a.
Lemma derivable_a_imp_falsum_or_b__derivable_a_imp_b : forall (context : flist) (a b : form), Derivable context (Imp a (OrF Falsum b)) -> Derivable context (Imp a b).
Lemma derivable_a_imp_b_or_falsum__derivable_a_imp_b : forall (context : flist) (a b : form), Derivable context (Imp a (OrF b Falsum)) -> Derivable context (Imp a b).
Lemma derivable_a0_and_a1_imp_b__derivable_a0_imp_a1_imp_b : forall (a0 a1 b : form) (context : flist), Derivable context (Imp (AndF a0 a1) b) -> Derivable context (Imp a0 (Imp a1 b)).
Lemma derivable_a0_or_a1_imp_b__derivable_a0_imp_b : forall (context : flist) (a0 a1 b : form), Derivable context (Imp (OrF a0 a1) b) -> Derivable context (Imp a0 b).
Lemma derivable_a0_or_a1_imp_b__derivable_a1_imp_b : forall (context : flist) (a0 a1 b : form), Derivable context (Imp (OrF a0 a1) b) -> Derivable context (Imp a1 b).
Lemma derivable_falsum_imp_b_imp_c__derivable_c : forall (context : flist) (b c : form), Derivable context (Imp (Imp Falsum b) c) -> Derivable context c.
Lemma derivable_b__derivable_a_imp_b : forall (a b : form) (context : flist), Derivable context b -> Derivable context (Imp a b).
Lemma derivable_a_a_imp_b__derivable_b : forall (a b : form) (context : flist), Derivable context a -> Derivable context (Imp a b) -> Derivable context b.
Lemma derivable_a_context_b__derivable_a_imp_b : forall (a b : form) (context : flist), Derivable (a :: context) b -> Derivable context (Imp a b).
Lemma derivable_vimp : forall (context : flist) (l : list Int) (a b : form), (forall context : flist, Derivable context a -> Derivable context b) -> Derivable context (vimp l a) -> Derivable context (vimp l b).
Lemma derivable_vimp2 : forall (context : flist) (l : list Int) (a b c : form), (forall context : flist, Derivable context a -> Derivable context b -> Derivable context c) -> Derivable context (vimp l a) -> Derivable context (vimp l b) -> Derivable context (vimp l c).
Lemma derivable_vimp0 : forall (context : flist) (l : list Int) (a : form), (forall context : flist, Derivable context a) -> Derivable context (vimp l a).