Section DerivableRules.
Context {L: Language}
{minL: MinimumLanguage L}
{pL: PropositionalLanguage L}
{Gamma: Provable L}
{minAX: MinimumAxiomatization L Gamma}
{ipAX: IntuitionisticPropositionalLogic L Gamma}.
Definition multi_and (xs: list expr): expr := fold_left andp xs truep.

Lemma multi_and_unfold_right_assoc:  forall (xs: list expr),
|-- multi_and xs <-->
(fix f xs :=
match xs with
| nil => TT
| x :: nil => x
| x :: xs0 => x && (f xs0)
end) xs.