Definition multi_imp {L: Language} {minL: MinimunLanguage L} (xs: list expr) (y: expr): expr :=
  fold_right impp y xs.Class NormalAxiomatization (L: Language) {minL: MinimunLanguage L} (Gamma: ProofTheory L): Type := {
  derivable_provable: forall Phi y, derivable Phi y <->
                        exists xs, Forall (fun x => Phi x) xs /\ provable (multi_imp xs y)
}.Class NormalAxiomatization (L: Language) {minL: MinimunLanguage L} (Gamma: ProofTheory L): Type := {
  derivable_provable: forall Phi y, derivable Phi y <->
                        exists xs, Forall (fun x => Phi x) xs /\ provable (multi_imp xs y)
}.

(* Specifications: *)
Lemma Axiomatization2SequentCalculus_SC: NormalSequentCalculus L Gamma.
Lemma Axiomatization2SequentCalculus_fwSC: FiniteWitnessedSequentCalculus L Gamma.
Lemma Axiomatization2SequentCalculus_minSC: MinimunSequentCalculus L Gamma.
Lemma Axiomatization2SequentCalculus_bSC: BasicSequentCalculus L Gamma.
Theorem SequentCalculus2Axiomatization_minAX: MinimunAxiomatization L Gamma.
Theorem SequentCalculus2Axiomatization_AX {fwSC: FiniteWitnessedSequentCalculus L Gamma}: NormalAxiomatization L Gamma.