End DerivableRulesFromSequentCalculus2.
Section DerivableRulesFromAxiomatization2.
Context {L: Language}
{minL: MinimunLanguage L}
{pL: PropositionalLanguage L}
{Gamma: ProofTheory L}
{minAX: MinimunAxiomatization L Gamma}
{ipGamma: IntuitionisticPropositionalLogic L Gamma}.

(* Specifications: *)
Lemma demorgan_orp_negp: forall (x y: expr),
|-- ~~ x || ~~ y --> ~~ (x && y).
Lemma demorgan_negp_orp: forall (x y: expr),
|-- ~~ (x || y) <--> (~~ x && ~~ y).
Lemma provable_truep: |-- TT.
Lemma andp_comm: forall (x y: expr),
|-- x && y <--> y && x.
Lemma andp_assoc: forall (x y z: expr),
|-- x && y && z <--> x && (y && z).
Lemma orp_comm: forall (x y: expr),
|-- x || y <--> y || x.
Lemma orp_assoc: forall (x y z: expr),
|-- x || y || z <--> x || (y || z).
Lemma andp_truep: forall (x: expr),
|-- x && TT <--> x.
Lemma truep_andp: forall (x: expr),
|-- TT && x <--> x.
Lemma falsep_orp: forall (x: expr),
|-- FF || x <--> x.
Lemma orp_falsep: forall (x: expr),
|-- x || FF <--> x.
Lemma truep_impp: forall (x: expr),
|-- (TT --> x) <--> x.
Lemma andp_dup: forall (x: expr),
|-- x && x <--> x.
Lemma orp_dup: forall (x: expr),
|-- x || x <--> x.
Lemma impp_curry: forall (x y z: expr),
|-- (x --> y --> z) --> (x && y --> z).
Lemma impp_uncurry: forall (x y z: expr),
|-- (x && y --> z) --> (x --> y --> z).
Lemma impp_curry_uncurry: forall (x y z: expr),
|-- (x --> y --> z) <--> (x && y --> z).